在Python中大于/小于比较
问题描述
在一个类中实现丰富的比较方法时,比较两个不同的类类型应该返回什么?文档上写着
但是,我在文档中找不到任何地方提到用于在两个不同类之间进行比较的标准返回类型。我想知道类的实例不能相对于同一类的其他实例或其他类型的对象进行排序,除非该类定义了足够的丰富比较方法(
__lt__()
、__le__()
、__gt__()
和__ge__()
)或__cmp__()
方法。
Python 2
和Python 3
的标准。
解决方案
__cmp__
(Python 2.x only)应为self < other
返回负值,为self == other
返回零,为self > other
返回正值。
The others("丰富比较方法",2.x和3.x)应返回相应的布尔值,例如__lt__(self, other)
应返回True
当self < other
时返回,否则返回False
。
相关文章