Stavo rifattorizzando un mio vecchio codice e mi sono imbattuto in questo:
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
Il codice funziona (e l'ho scritto circa 3 anni fa!) Ma non riesco a trovare questa cosa documentata da nessuna parte nei documenti di Python e tutti usano sorted()per implementare l'ordinamento personalizzato. Qualcuno può spiegare perché funziona?
sorted()esort()offrono l'ordinamento personalizzato più o meno allo stesso modo, modulo la differenza nella convenzione di chiamata.