對於不同類型對象的排序,建議的Python語義是什麼?換句話說,當自定義編寫的比較方法(使用rich comparisons,例如__lt__
,但也許在Python 2中使用'poor'比較__cmp__
)遇到與self
不同類型的對象時,應該執行什麼行爲?不同類型對象的比較
- 如果人們發明了訂單,例如, 「所有意外的對象都比我自己的類型少」?
- 應該拋出一個
TypeError
? - 是否有一些簡單的方法讓其他對象有一個嘗試,即如果有一個
foo < bar
和foo.__lt__
不知道bar
的類型,它可以回落到bar.__gt__
? - 是否有任何關於如何實現不同類型對象的正確排序的指導方針,最好是total order但可能更少?
- 在文檔中是否有任何部分解釋了爲什麼
3 < "3"
?
PEP 207顯然留下了很多的東西怎麼能被實現自由的,但儘管如此,我預計可能會有一些指導如何事情應該實施幫助的互操作性。