Nhìn vào Queue.py trong Python 2.6, tôi thấy cấu trúc này mà tôi thấy hơi lạ:
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
Nếu maxsize
là 0 thì hàng đợi không bao giờ đầy.
Câu hỏi của tôi là làm thế nào nó hoạt động cho trường hợp này? Làm thế nào 0 < 0 == 0
được coi là sai?
>>> 0 < 0 == 0
False
>>> (0) < (0 == 0)
True
>>> (0 < 0) == 0
True
>>> 0 < (0 == 0)
True
>>> (0) < (0 == 0)
, rõ ràng là không.
n = 0 < self.maxsize == self._qsize()
ở nơi đầu tiên, bằng bất kỳ ngôn ngữ nào. Nếu đôi mắt của bạn phải đảo qua lại nhiều lần để tìm hiểu chuyện gì đang xảy ra, thì đó không phải là một dòng được viết tốt. Chỉ cần chia nó thành nhiều dòng.