super()
Wołaj metodę rodzica z podklasy. Dopisz dodatkowe zachowanie po (albo wokół) tego wywołania.
Składnia
class Child(Parent):def method(self, n):super().method(n)
- Jeśli nadpiszesz __init__, wołaj super().__init__(), inaczej setup rodzica nigdy nie zadziała.
Przykład
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)Wynik:
2
Typowe błędy
- Zapomnienie self przy nadpisaniu to TypeError. Zapomnienie super() pomija metodę rodzica całkowicie.