2014-04-20 82 views
1

在類中實現豐富的比較方法時,比較兩種不同的類類型時應該返回什麼?從文檔,它說的一類Python中的比較大於/小於

實例不能相對於同一類的其他實例,或其他類型的對象進行排序,除非類或者定義不夠豐富的比較方法(__lt__()__le__()__gt__()__ge__())或__cmp__()方法。

但是,我無法在文檔中的任何地方找到標準返回類型,以便比較兩個不同的類。我想知道Python 2Python 3的標準。

回答

0

__cmp__Python 2.x only)應爲self > other返回self < other負,零self == other和積極的。

The others(「豐富的比較方法」,2.x和3.x)應返回適當的布爾值,例如, __lt__(self, other)應當返回True,否則爲self < other,False

+0

對於Python 2是否正確? – Jonathan

+0

在2.x和3.x中,除3.x不使用__cmp__外。見例如https://docs.python.org/3.4/reference/datamodel.html#object.__lt__ – jonrsharpe

相關問題