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 演算子がネイティブに存在しないからですか?