Lors de l'implémentation des méthodes de comparaison riche dans une classe, que doit-on renvoyer lors de la comparaison de deux types de classe différents? De la documentation, il ditComparaison supérieure/inférieure à Python
instances d'une classe ne peuvent pas être commandés par rapport à d'autres instances de la même classe, ou d'autres types d'objets, à moins que la classe définit soit assez des méthodes de comparaison riches (
__lt__()
,__le__()
,__gt__()
et__ge__()
) ou la méthode__cmp__()
.
Cependant, je ne trouve nulle part dans la documentation où il mentionne le type de retour standard pour la comparaison entre deux classes différentes. Je voudrais connaître la norme pour les deux Python 2
et Python 3
.
Pour 'Python 2' correct? – Jonathan
Dans 2.x et 3.x, sauf que 3.x n'utilise pas '__cmp__'. Voir par exemple https://docs.python.org/3.4/reference/datamodel.html#object.__lt__ – jonrsharpe