在Basic customisation,約比較方法的python文檔狀態:爲什麼(lt,gt)和(le,ge)反射而不是(lt,ge)和(le,gt)?
[這些方法沒有交換參數版本]; 寧可,
__lt__()
和__gt__()
是彼此的反映,__le__()
和__ge__()
是彼此的反映,而__eq__()
和__ne__()
是他們自己的反映。
我會通過__lt__()
和__ge__()
是彼此的反射(以及__le__()
和__gt__()
)少驚訝。
雖然文檔也狀態:
...比較運營商之間沒有其他的隱含關係,例如,
(x<y or x==y)
真相併不意味着x<=y
,
,如果有的話,是或將是選擇反射關係的基本原理?
相關:'@ functools.total_ordering',[__le__,__ge__?(http://stackoverflow.com/q/13799386/3789665)的Python錯誤。 – greybeard