Aller au contenu principal

3 formations sont désormais disponibles : Python, Flask et JS.

Aller au contenu principal

Méthodes Magiques (Dunder Methods)

Tu as vu __init__. Il y en a plein d'autres qui commencent et finissent par __ (Double Underscore).

__str__ (Affichage joli)

Par défaut, print(voiture) affiche un truc moche <__main__.Voiture.... On peut changer ça.

class Voiture:
    def __init__(self, marque):
        self.marque = marque

    def __str__(self):
        return f"Une magnifique {self.marque}"

v = Voiture("Porsche")
print(v) # Affiche : "Une magnifique Porsche"

__eq__ (Égalité)

Par défaut, deux objets sont différents en mémoire, donc v1 == v2 est False même s'ils ont les mêmes données.

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __eq__(self, autre):
        return self.x == autre.x and self.y == autre.y

p1 = Point(1, 2)
p2 = Point(1, 2)
print(p1 == p2) # True (grâce à __eq__)

C'est ça qui rend ton code Python "magique" et intuitif.