super()

Chiama il metodo del genitore da una sottoclasse. Scrivi il comportamento extra dopo (o intorno) quella chiamata.

Sintassi

class Child(Parent):
def method(self, n):
super().method(n)
  • Se ridefinisci __init__, chiama super().__init__() o l'impostazione del genitore non gira mai.

Esempio

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)

Output:

2

Errori comuni

  • Dimenticare self su una ridefinizione è un TypeError. Dimenticare super() salta del tutto il metodo del genitore.

Esercitati