Cla*_*diu 9 python sorting data-structures
我有一个代表一些领域的类.当对这个类的实例列表进行排序时,我希望它们按特定顺序排序(从每个类中获取一个特定的键).我可以做list.sort(key=Classname.sortKey)
和定义一个sortKey
方法,但我宁愿做list.sort()
,并让它工作.我想我可以通过覆盖来做到这一点__cmp__
.但是,当我与不是我的数据类型的东西进行比较时,我该怎么办?我想像......
def __cmp__(self, o):
if isinstance(o, MyClass):
return cmp(self.sortKey(), o.sortKey())
return object.__cmp__(self, o) ##**wrong
Run Code Online (Sandbox Code Playgroud)
但这反过来有效.我不在乎他们在异构列表中采取什么排序.我会回来,0
但那样的东西MyClass(...) == x
总是如此,因为任何x
不是实例MyClass
.