我发现了两者之间的区别
while queue
中的while not queue.empty()
和python3
我以为它们是相同的,但事实并非如此。
当我使用
在排队时: ->使用完队列中的所有项目后,它就停止了。 (没有错误)
另一方面,当我使用
不是(queue.empty()): ->它按照我的想法工作。
有什么区别吗?还是我做错了什么?
谢谢!
答案 0 :(得分:2)
while queue:
将一直循环循环,因为它仅检查queue
对象不是None
。不管对象是否为空,只要它存在就可以。
例如:
from queue import SimpleQueue
q = SimpleQueue()
while q:
print ("Queue empty? ", q.empty())
上面的脚本将无限地打印“ Queue empty?True”。