Aufrufen von übergeordneten Klassenmethoden in Python
Bei der Arbeit mit Objekthierarchien in Python kann es erforderlich sein, Methoden aus einer übergeordneten Klasse darin aufzurufen eine Kinderklasse. Im Gegensatz zu Perl oder Java, wo für diesen Zweck spezielle Schlüsselwörter existieren, erfordert Python die Verwendung expliziter Verweise auf übergeordnete Klassen.
Im bereitgestellten Beispiel ist der Code mit Foo::frotz() nicht ideal, da er untergeordnete Klassen erzwingt Klassen, um zu wissen, welche Klasse geerbte Methoden definiert hat, was zu Informationsabhängigkeiten und potenziellen Problemen beim Erstellen tiefer Hierarchien führt.
Um dieses Problem zu beheben, bietet Python die Funktion super(). Mit super() können Sie auf übergeordnete Klassenmethoden einer untergeordneten Klasse zugreifen und diese aufrufen, ohne den Namen der übergeordneten Klasse explizit anzugeben.
Für Python 3 und höher können Sie einfach Folgendes verwenden:
class Foo(Bar): def baz(self, **kwargs): return super().baz(**kwargs)
Für Python 2 müssen Sie Klassen neuen Stils und explizit aktivieren verwenden:
class Foo(Bar): def baz(self, arg): return super(Foo, self).baz(arg)
Das obige ist der detaillierte Inhalt vonWie kann ich übergeordnete Klassenmethoden in Python aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!