super()

Chama o método do pai a partir de uma subclasse. Escreve o comportamento extra depois (ou à volta) dessa chamada.

Sintaxe

class Child(Parent):
def method(self, n):
super().method(n)
  • Se redefinires __init__, chama super().__init__() ou a configuração do pai nunca corre.

Exemplo

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)

Saída:

2

Erros comuns

  • Esquecer self numa redefinição é um TypeError. Esquecer super() salta o método do pai por completo.

Pratique