Trong Python3, functools.total_ordering decorator cho phép một chỉ quá tải __lt__
và __eq__
để có được tất cả 6 toán tử so sánh.python total_ordering: tại sao __lt__ và __eq__ thay vì __le__?
Tôi không hiểu tại sao người ta phải viết hai nhà khai thác khi người ta sẽ là đủ, cụ thể là __le__
hoặc __ge__
, và tất cả những người khác sẽ được xác định phù hợp:
a < b <=> not (b <= a)
a > b <=> not (a <= b)
a == b <=> (a <= b) and (b <= a)
a != b <=> (a <= b) xor (b <= a)
Có phải đó là chỉ vì hành xor không tồn tại tự nhiên?
'xor' không tồn tại nguyên bản. –
@MartijnPieters chỉ bitmap xor, phải không? –