我重构了我的一些旧代码,发现了这一点:
alist.sort(cmp_items)
def cmp_items(a, b):
if a.foo > b.foo:
return 1
elif a.foo == b.foo:
return 0
else:
return -1
该代码有效(并且我是3年前写的!),但是我找不到在Python文档中任何地方记录的东西,每个人都sorted()
用来实现自定义排序。有人可以解释为什么这样做吗?
sorted()
并sort()
以几乎相同的方式提供自定义排序,对调用约定的差异取模。