通过对sorted
函数使用key
参数,可以对myclass
数组进行排序:
sortedlist = sorted(myclasses, key=lambda obj: obj.myproperty)
有没有办法为我们的类定义一个自然顺序?也许是某种神奇的方法,这样我们就不用每次都交钥匙了?
例如
class myclass:
def __init__(self,a,b):
self.key1 = a
self.key2 = b
def __sortkey__(self):
return self.key2
或者,如果我们定义__le__
的话,它自然会起作用吗?
见this previous question。答案是,只需使用} 。
__lt__
,就可以逃脱惩罚,但最好使用^{除了} 类装饰器,而不是定义所有的类。
__cmp__
,您还可以使用所谓的“富比较运算符”__eq__
、__le__
、__lt__
、__gt__
和__ge__
。您可以在2.7+/3.1+中使用^{__cmp__
在3.x中消失我会重写^{}
相关问题 更多 >
编程相关推荐