Guardando Queue.py in Python 2.6, ho trovato questo costrutto che ho trovato un po 'strano:
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
Se maxsize
è 0 la coda non è mai piena.
La mia domanda è: come funziona in questo caso? Come 0 < 0 == 0
viene considerato falso?
>>> 0 < 0 == 0
False
>>> (0) < (0 == 0)
True
>>> (0 < 0) == 0
True
>>> 0 < (0 == 0)
True
>>> (0) < (0 == 0)
, chiaramente non lo è.
n = 0 < self.maxsize == self._qsize()
in primo luogo, in nessuna lingua. Se i tuoi occhi devono spostarsi avanti e indietro attraverso la linea più volte per capire cosa sta succedendo, non è una linea ben scritta. Basta dividerlo in più righe.