Python Language Fonction cmp supprimée dans Python 3


Exemple

Dans Python 3, la fonction intégrée cmp été supprimée, avec la méthode spéciale __cmp__ .

De la documentation:

La fonction cmp() doit être considérée comme disparue et la méthode spéciale __cmp__() n'est plus prise en charge. Utilisez __lt__() pour le tri, __eq__() avec __hash__() , et d'autres comparaisons riches si nécessaire. (Si vous avez vraiment besoin de la fonctionnalité cmp() , vous pouvez utiliser l'expression (a > b) - (a < b) comme équivalent pour cmp(a, b) .)

De plus, toutes les fonctions intégrées acceptant le paramètre cmp acceptent désormais uniquement le paramètre key mot clé uniquement.

Dans le module functools il y a aussi une fonction utile cmp_to_key(func) qui vous permet de convertir une fonction de style cmp une fonction de style key :

Transformer une ancienne fonction de comparaison en une fonction clé. Utilisé avec les outils qui acceptent les fonctions clés (telles que sorted() , min() , max() , heapq.nlargest() , heapq.nsmallest() , itertools.groupby() ). Cette fonction est principalement utilisée comme outil de transition pour les programmes en cours de conversion à partir de Python 2 qui prend en charge l’utilisation de fonctions de comparaison.