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()
そもそも、どんな言語でもコードを書くべきではない理由の1つです。何が起こっているのかを理解するために、目を線の前後に何度か投げる必要がある場合、それはうまく書かれた線ではありません。数行に分割するだけです。