Trong python chúng ta có thể nói:phương thức `foo <bar <baz` thực sự gọi là gì?
if foo < bar < baz:
do something.
và tương tự, chúng ta có thể quá tải các toán tử so sánh như:
class Bar:
def __lt__(self, other):
do something else
nhưng những gì các phương pháp của các loại toán hạng của những comparisions khoảng đang thực sự được gọi là? là trên tương đương với
if foo.__lt__(bar) and bar.__lt__(baz):
do something.
Chỉnh sửa: lại S.Lott, Đây là một số đầu ra giúp minh họa điều thực sự xảy ra.
>>> class Bar:
def __init__(self, name):
self.name = name
print('__init__', self.name)
def __lt__(self, other):
print('__lt__', self.name, other.name)
return self.name < other.name
>>> Bar('a') < Bar('b') < Bar('c')
('__init__', 'a')
('__init__', 'b')
('__lt__', 'a', 'b')
('__init__', 'c')
('__lt__', 'b', 'c')
True
>>> Bar('b') < Bar('a') < Bar('c')
('__init__', 'b')
('__init__', 'a')
('__lt__', 'b', 'a')
False
>>>
+1: Bạn có thể (và đã làm) trả lời câu hỏi của riêng bạn. -1: Bạn chắc chắn không cần phải hỏi điều này ở đây, vì việc tìm kiếm câu trả lời rõ ràng dễ dàng hơn và nhanh hơn so với yêu cầu. –