Я реорганизовал какой-то свой старый код и наткнулся на это:
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()
предлагают настраиваемую сортировку почти таким же образом, с учетом разницы в соглашениях о вызовах.