En regardant dans Queue.py dans Python 2.6, j'ai trouvé cette construction que j'ai trouvée un peu étrange:
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
Si la valeur maxsize
est 0, la file d'attente n'est jamais pleine.
Ma question est de savoir comment cela fonctionne pour ce cas? Comment 0 < 0 == 0
est-il considéré comme faux?
>>> 0 < 0 == 0
False
>>> (0) < (0 == 0)
True
>>> (0 < 0) == 0
True
>>> 0 < (0 == 0)
True
>>> (0) < (0 == 0)
, ce n'est clairement pas le cas.
n = 0 < self.maxsize == self._qsize()
au départ, dans aucune langue. Si vos yeux doivent faire des allers-retours sur la ligne plusieurs fois pour comprendre ce qui se passe, ce n'est pas une ligne bien écrite. Il suffit de le diviser en plusieurs lignes.