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