super()

Rufe die Elternmethode aus einer Unterklasse auf. Schreib das Extra-Verhalten danach (oder darum herum).

Syntax

class Child(Parent):
def method(self, n):
super().method(n)
  • Wenn du __init__ überschreibst, rufe super().__init__() auf, sonst läuft die Eltern-Initialisierung nie.

Beispiel

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)

Ausgabe:

2

Häufige Fehler

  • self auf einer Überschreibung zu vergessen ist ein TypeError. super() zu vergessen überspringt die Elternmethode komplett.

Übe es