在Python中大于/小于比较

2022-04-20 00:00:00 python standards comparison

问题描述

在一个类中实现丰富的比较方法时,比较两个不同的类类型应该返回什么?文档上写着

类的实例不能相对于同一类的其他实例或其他类型的对象进行排序,除非该类定义了足够的丰富比较方法(__lt__()__le__()__gt__()__ge__())或__cmp__()方法。

但是,我在文档中找不到任何地方提到用于在两个不同类之间进行比较的标准返回类型。我想知道Python 2Python 3的标准。


解决方案

__cmp__(Python 2.x only)应为self < other返回负值,为self == other返回零,为self > other返回正值。

The others("丰富比较方法",2.x和3.x)应返回相应的布尔值,例如__lt__(self, other)应返回Trueself < other时返回,否则返回False

相关文章