super()

Appelle la méthode parente depuis une sous-classe. Écris le comportement extra après (ou autour) cet appel.

Syntaxe

class Child(Parent):
def method(self, n):
super().method(n)
  • Si tu redéfinis __init__, appelle super().__init__() sinon l'initialisation parente ne s'exécute jamais.

Exemple

class Counter:
    def __init__(self):
        self.n = 0

    def add(self):
        self.n += 1

class Fast(Counter):
    def add(self):
        super().add()
        self.n += 1

c = Fast()
c.add()
print(c.n)

Sortie :

2

Erreurs courantes

  • Oublier self sur une redéfinition est un TypeError. Oublier super() saute entièrement la méthode parente.

Pratiquer