在Python3中,functools.total_ordering装饰器允许只重载__lt__并__eq__获得所有6个比较运算符.
我不明白为什么一个人必须写两个运算符就足够了,即__le__或者__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)
Run Code Online (Sandbox Code Playgroud)
那是因为xor运算符本身不存在吗?