Python中的大于/小于比较
在一个类中实现丰富的比较方法时,当比较两个不同类型的类时,应该返回什么呢?根据文档的说明:
一个类的实例不能与同一类的其他实例或其他类型的对象进行排序,除非这个类定义了足够的丰富比较方法(
__lt__()
、__le__()
、__gt__()
和__ge__()
)或者__cmp__()
方法。
不过,我在文档中找不到关于比较两个不同类时标准返回类型的说明。我想知道在 Python 2
和 Python 3
中的标准是什么。
1 个回答
1
__cmp__
(仅适用于Python 2.x)这个方法应该根据两个对象的大小关系返回不同的值:如果第一个对象小于第二个对象,就返回一个负数;如果两个对象相等,就返回0;如果第一个对象大于第二个对象,就返回一个正数。
其他的方法(也叫“丰富比较方法”,适用于2.x和3.x)应该返回合适的布尔值,比如说__lt__(self, other)
这个方法在第一个对象小于第二个对象时应该返回True
,否则返回False
。