So rufen Sie übergeordnete Klassenmethoden in Python-untergeordneten Klassen auf
In der objektorientierten Programmierung müssen abgeleitete Klassen normalerweise auf in ihnen definierte Methoden zugreifen Elternklassen. Dies ist ein häufiges Szenario, das beim Erstellen komplexer Klassenhierarchien auftritt. Allerdings können die Namenskonventionen von Python einige Fragen für Entwickler aufwerfen, die aus anderen Sprachen wie Perl und Java kommen.
Anders als die Schlüsselwörter „SUPER“ von Perl oder Java „super“ bietet Python keine vordefinierte Möglichkeit, übergeordnete Methoden aufzurufen . Stattdessen müssen Sie beim Aufruf der Methode explizit den Namen der übergeordneten Klasse angeben. Dies kann zu Herausforderungen bei der Aufrechterhaltung tiefer Klassenhierarchien führen, bei denen die Verfolgung der Abstammung geerbter Methoden kompliziert wird.
Um diese Einschränkung zu überwinden und übergeordnete Methoden nahtlos aufzurufen, stellt Python die Funktion super() bereit. Mit diesem Dienstprogramm können Sie Methoden aus der übergeordneten Klasse aufrufen, ohne explizit auf deren Namen zu verweisen. Lassen Sie uns anhand eines einfachen Beispiels untersuchen, wie super() verwendet wird:
class Foo(Bar): def baz(self, **kwargs): return super().baz(**kwargs)
In diesem Code erbt die Foo-Klasse von Bar und definiert eine baz()-Methode. Innerhalb der baz()-Methode von Foo können wir die baz()-Methode von Bar aus mit super().baz(**kwargs) aufrufen.
Wenn Sie Python-Versionen vor 3 verwenden, müssen Sie Sie müssen die Verwendung von Klassen neuen Stils explizit aktivieren und den Code wie folgt schreiben:
class Foo(Bar): def baz(self, arg): return super(Foo, self).baz(arg)
Durch die Verwendung von super() auf diese Weise können Sie übergeordnete Methoden unabhängig von der Tiefe problemlos aufrufen Ihre Klassenhierarchie. Dadurch bleibt Ihr Code sauber und wartbar, sodass die übergeordnete Klasse beim Zugriff auf ihre Methoden nicht explizit benannt werden muss.
Das obige ist der detaillierte Inhalt vonWie rufe ich übergeordnete Klassenmethoden in untergeordneten Python-Klassen auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!