J'étais en train de refactoriser un de mes vieux codes et je suis tombé sur ceci:
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
Le code fonctionne (et je l'ai écrit il y a environ 3 ans!) Mais je ne trouve pas cette chose documentée nulle part dans la documentation Python et tout le monde l'utilise sorted()
pour implémenter le tri personnalisé. Quelqu'un peut-il expliquer pourquoi cela fonctionne?
sorted()
etsort()
offre un tri personnalisé à peu près de la même manière, modulo la différence de convention d'appel.