Python3中(while队列)和(while not queue.empty())有什么区别

时间:2020-10-07 06:26:37

标签: python while-loop queue

我发现了两者之间的区别 while queue中的while not queue.empty()python3

我以为它们是相同的,但事实并非如此。

当我使用

在排队时: ->使用完队列中的所有项目后,它就停止了。 (没有错误)

另一方面,当我使用

不是(queue.empty()): ->它按照我的想法工作。

有什么区别吗?还是我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

while queue:将一直循环循环,因为它仅检查queue对象不是None。不管对象是否为空,只要它存在就可以。

例如:

from queue import SimpleQueue

q = SimpleQueue()

while q:
    print ("Queue empty? ", q.empty())

上面的脚本将无限地打印“ Queue empty?True”。