Python中的大于/小于比较

3
在实现类的比较方法时,如果比较两个不同类别的对象,应该返回什么?根据文档说明:
“除非类定义了足够的比较方法(__lt__()、__le__()、__gt__()和__ge__())或者__cmp__()方法,否则不能对一个类的实例与其他实例或其他类型的对象进行排序。”
然而,在文档中我没找到任何提到比较两个不同类的标准返回类型的内容。我想知道Python 2和Python 3的标准。
1个回答

1

__cmp__ (仅限Python 2.x) 应该对 self < other 返回负数,对 self == other 返回零,对 self > other 返回正数。

其他方法("rich comparison methods",2.x和3.x)应该返回适当的布尔值,例如__lt__(self, other)self < other时应该返回True,否则返回False


在2.x和3.x中,除了3.x不使用__cmp__之外。请参见例如https://docs.python.org/3.4/reference/datamodel.html#object.__lt__。 - jonrsharpe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接