Estaba refactorizando un código antiguo mío y me encontré con esto:
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
El código funciona (¡y lo escribí hace unos 3 años!), Pero no puedo encontrar esto documentado en ningún lugar de los documentos de Python y todos lo usan sorted()para implementar la clasificación personalizada. ¿Alguien puede explicar por qué funciona esto?
sorted()ysort()ofrecer clasificación personalizada de la misma manera, modulo la diferencia en la convención de llamadas.