Clear all items from the queue
我读了上面的答案
我正在使用python 2.7
import Queue
pq = Queue.PriorityQueue()
pq.clear()
我收到以下错误:
AttributeError: PriorityQueue instance has no attribute 'clear'
有没有办法轻松清空优先级队列而不是手动弹出所有项目?或者会重新实例化工作(即它不会搞乱join())?
答案 0 :(得分:1)
实际上pq.queue.clear()
。但是,正如您引用的问题的答案中所提到的,这没有记录,可能不安全。
最简洁的方法在this answer中描述:
while not q.empty():
try:
q.get(False)
except Empty:
continue
q.task_done()
重新实例化队列当然也会起作用(该对象很容易从内存中删除),只要代码的其他部分不保留对旧队列的引用。