19

Python3 では、functools.total_ordering デコレーター__lt__を使用すると、オーバーロードのみを行い__eq__、6 つの比較演算子すべてを取得できます。

__le__1つ、つまりorで十分な場合に2つの演算子を記述しなければならない理由がわかりません。__ge__他のすべての演算子はそれに応じて定義されます。

a < b   <=>   not (b <= a)
a > b   <=>   not (a <= b)
a == b   <=>   (a <= b) and (b <= a)
a != b   <=>   (a <= b) xor (b <= a)

それは単に xor 演算子がネイティブに存在しないからですか?

4

1 に答える 1