Refaktoryzowałem stary kod i natknąłem się na to:
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
Kod działa (i napisałem go około 3 lata temu!), Ale nie mogę znaleźć tego udokumentowanego nigdzie w dokumentacji Pythona i wszyscy używają go sorted()do implementacji niestandardowego sortowania. Czy ktoś może wyjaśnić, dlaczego to działa?
sorted()isort()oferują niestandardowe sortowanie w bardzo podobny sposób, modulo różnicę w konwencji wywoływania.