Surcharge des opérateurs avec Python

-

La surcharge des opérateurs est une technique avancée que nous pouvons utiliser pour rendre les classes comparables et les faire fonctionner avec des opérateurs Python.

Prenons une classe Dog:

class Dog:
    # the Dog class
    def __init__(self, name, age):
        self.name = name
        self.age = age

Créons 2 objets pour Dog :

roger = Dog('Roger', 8)
syd = Dog('Syd', 7)

Nous pouvons utiliser la surcharge de l’opérateur pour ajouter un moyen de comparer ces 2 objets, en se basant sur la propriété age :

class Dog:
    # the Dog class
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __gt__(self, other):
        return True if self.age > other.age else False

Maintenant, si vous essayez de lancer print(roger > syd), vous obtiendrez le résultat True.

De la même manière que nous avons défini __gt__() (ce qui signifie plus grand que), nous pouvons définir les méthodes suivantes :

  • __eq__() pour vérifier l’égalité
  • __lt__() pour vérifier si un objet doit être considéré comme inférieur à un autre avec l’opérateur <
  • __le__() pour inférieur ou égal (<=)
  • __ge__() pour supérieur ou égal (>=)
  • __ne__() pour non égal (!=)

Ensuite, vous avez des méthodes pour interopérer (interoperate) avec des opérations arithmétiques :

  • __add__() répond à l'opérateur +.
  • __sub__() répondre à l'opérateur -.
  • __mul__() répondre à l'opérateur *.
  • __truediv__() répondre à l'opérateur /.
  • __floordiv__() répondre à l'opérateur //.
  • __mod__() répondre à l'opérateur %.
  • __pow__() répondre à l'opérateur **.
  • __rshift__() répondre à l'opérateur >>.
  • __lshift__() répondre à l'opérateur <<.
  • __et__() répondre à l'opérateur &.
  • __or__() répondre à l'opérateur |.
  • __xor__() répondre à l'opérateur ^.

Il y a quelques autres méthodes pour travailler avec d'autres opérateurs, mais vous avez compris l'idée.

Alfred
Alfredhttps://www.alfreddagenais.com
Salut ! Moi, c'est Alfred, développeur dans l’âme et explorateur de l'infini Web. Je suis constamment à la recherche de nouvelles idées et je pense que le développement web et l'informatique ont le pouvoir de transformer le monde. Je suis un grand admirateur de l'expérimentation, parce que c'est souvent de là que naissent les idées les plus créatives. Je suis convaincu que l'humour est un ingrédient clé de la vie, alors j'essaie toujours de glisser une blague ou deux dans mon code (pas toujours facile à comprendre, mais c'est le risque à prendre). En dehors de la programmation, j'aime passer du temps avec ma famille et mes amis, découvrir de nouveaux endroits et cuisiner des plats délicieux (du moins, j'essaie). Si vous voulez discuter de développement web, d'innovation, ou tout simplement échanger des blagues, n'hésitez pas à me contacter. Je suis toujours partant pour une bonne conversation !

Share this article

Recent posts

Popular categories

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici

Recent comments