Méthodes magiques liées aux opérateurs
Il existe tellement de méthodes magiques liées aux opérateurs que je vais énumérer grossièrement les deux catégories suivantes :
1. Opérateurs de comparaison
| Méthodes magiques | Explication | |||||||||||||||||||||||||||||
| __cmp__(self , autre) | Si la méthode renvoie un nombre négatif, cela signifie soi < autre; Renvoie un nombre positif, signifie soi > Il est fortement déconseillé de définir __cmp__. Au lieu de cela, il est préférable de définir __lt__, __eq__ et d'autres méthodes séparément pour implémenter la fonction de comparaison. __cmp__ est obsolète dans Python3. | |||||||||||||||||||||||||||||
| __eq__(self, other) | définit le comportement de l'opérateur de comparaison == | |||||||||||||||||||||||||||||
| __ne__(self, other) | définit le comportement de l'opérateur de comparaison != | |||||||||||||||||||||||||||||
| __lt__(self, other) | définit le comportement de l'opérateur de comparaison < | |||||||||||||||||||||||||||||
| __gt__(self, other) | définit le comportement de l'opérateur de comparaison > Le comportement de l'opérateur <= | |||||||||||||||||||||||||||||
| __ge__(self, other) | définit le comportement de l'opérateur de comparaison >= | |||||||||||||||||||||||||||||
Regardez un exemple simple pour comprendre : #!/usr/bin/env python3
# -*- coding: UTF-8 -*-
class Number(object):
def __init__(self, value):
self.value = value
def __eq__(self, other):
print('__eq__')
return self.value == other.value
def __ne__(self, other):
print('__ne__')
return self.value != other.value
def __lt__(self, other):
print('__lt__')
return self.value < other.value
def __gt__(self, other):
print('__gt__')
return self.value > other.value
def __le__(self, other):
print('__le__')
return self.value <= other.value
def __ge__(self, other):
print('__ge__')
return self.value >= other.value
if __name__ == '__main__':
num1 = Number(2)
num2 = Number(3)
print('num1 == num2 ? --------> {} \n'.format(num1 == num2))
print('num1 != num2 ? --------> {} \n'.format(num1 == num2))
print('num1 < num2 ? --------> {} \n'.format(num1 < num2))
print('num1 > num2 ? --------> {} \n'.format(num1 > num2))
print('num1 <= num2 ? --------> {} \n'.format(num1 <= num2))
print('num1 >= num2 ? --------> {} \n'.format(num1 >= num2))Le résultat de sortie est : __eq__ num1 == num2 ? --------> False __eq__ num1 != num2 ? --------> False __lt__ num1 < num2 ? --------> True __gt__ num1 > num2 ? --------> False __le__ num1 <= num2 ? --------> True __ge__ num1 >= num2 ? --------> False 2. |
















Le didacticiel n'est pas disponible au téléchargement pour le moment. Le staff est actuellement en train de l'organiser. Veuillez prêter plus d'attention à ce cours à l'avenir ~ 