如果没有实现__lt__协议,比较如何工作?

myu*_*uf3 2 python comparison python-2.7

我最感兴趣的是发生了什么,但是假设我有一个自定义类,实现了__eq__而没有别的.

其他比较如何解决?什么是默认行为?每次运行比较时,我都会得到不同的结果.我知道我需要实现这些,我也可以用它@total_ordering来简化工作.

幕后实际发生了什么?这主要是出于好奇.

cHa*_*Hao 5

如果__lt__未定义,则使用比较__cmp__.如果没有定义,则使用默认比较器.并且看起来默认比较器通过"对象标识(地址)"进行比较.

有关详细信息,请参阅文档__cmp__.