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.