在Python 2.6中查看Queue.py时,我发现这个构造有点奇怪:
def full(self):
"""Return True if the queue is full, False otherwise
(not reliable!)."""
self.mutex.acquire()
n = 0 < self.maxsize == self._qsize()
self.mutex.release()
return n
如果maxsize
为0,则队列永远不会满。
我的问题是在这种情况下如何运作?如何0 < 0 == 0
被认为是错误的?
>>> 0 < 0 == 0
False
>>> (0) < (0 == 0)
True
>>> (0 < 0) == 0
True
>>> 0 < (0 == 0)
True
>>> (0) < (0 == 0)
,显然不是。
n = 0 < self.maxsize == self._qsize()
首先,您不应该使用任何语言编写代码的一个原因。如果您的眼睛必须多次划过来回线以弄清发生了什么,这不是写得很好的线。只需将其分成几行即可。