Eu estava refatorando um código antigo meu e me deparei com isto:
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
O código funciona (e eu o escrevi há cerca de 3 anos!), Mas não consigo encontrar isso documentado em nenhum lugar nos documentos do Python e todo mundo usa sorted()
para implementar classificação personalizada. Alguém pode explicar por que isso funciona?
sorted()
esort()
oferecem classificação personalizada da mesma maneira, modulo a diferença na convenção de chamada.