Python повторяемая очередь
Мне нужно знать, когда очередь закрыта, и у меня не будет больше элементов, чтобы я мог закончить итерацию.
Я сделал это, поместив дозорного в очередь:
from Queue import Queue
class IterableQueue(Queue):
_sentinel = object()
def __iter__(self):
return self
def close(self):
self.put(self._sentinel)
def next(self):
item = self.get()
if item is self._sentinel:
raise StopIteration
else:
return item
Учитывая, что это очень распространенное использование для очереди, нет ли какой-либо встроенной реализации?