Python中的大于/小于比较

3 投票
1 回答
3423 浏览
提问于 2025-04-18 03:31

在一个类中实现丰富的比较方法时,当比较两个不同类型的类时,应该返回什么呢?根据文档的说明:

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

不过,我在文档中找不到关于比较两个不同类时标准返回类型的说明。我想知道在 Python 2Python 3 中的标准是什么。

1 个回答

1

__cmp__仅适用于Python 2.x)这个方法应该根据两个对象的大小关系返回不同的值:如果第一个对象小于第二个对象,就返回一个负数;如果两个对象相等,就返回0;如果第一个对象大于第二个对象,就返回一个正数。

其他的方法(也叫“丰富比较方法”,适用于2.x和3.x)应该返回合适的布尔值,比如说__lt__(self, other)这个方法在第一个对象小于第二个对象时应该返回True,否则返回False

撰写回答