Heim >Backend-Entwicklung >Python-Tutorial >Wie rufe ich übergeordnete Klassenmethoden aus untergeordneten Klassen in Python auf?

Wie rufe ich übergeordnete Klassenmethoden aus untergeordneten Klassen in Python auf?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-08 13:59:14411Durchsuche

How Do I Call Parent Class Methods from Child Classes in Python?

Aufrufen von übergeordneten Klassenmethoden in Python-untergeordneten Klassen

Beim Definieren von Klassenhierarchien in Python ist es wichtig zu wissen, wie man auf übergeordnete Klassenmethoden zugreift abgeleitete Klassen. In Sprachen wie Perl und Java erleichtert das Schlüsselwort „super“ dies, aber in Python gibt es einen scheinbar anderen Ansatz.

Einführung der super()-Funktion

Zu Um eine übergeordnete Klassenmethode aus einer untergeordneten Klasse in Python aufzurufen, verwenden Sie die Funktion super(). Mit dieser Funktion können Sie auf Attribute und Methoden der übergeordneten Klasse zugreifen, ohne den Namen der übergeordneten Klasse explizit anzugeben.

class Foo(Bar):
    def baz(self, **kwargs):
        return super().baz(**kwargs)

Im obigen Beispiel ist die Foo-Klasse ein untergeordnetes Element der Bar-Klasse. Innerhalb der baz-Methode der Foo-Klasse wird super() verwendet, um die baz-Methode der übergeordneten Bar-Klasse aufzurufen.

Option für Klassen im neuen Stil (nur Python 2)

In Python 2 müssen Sie sich explizit für die Verwendung von Klassen neuen Stils entscheiden, um die super()-Funktion nutzen zu können. Deklarieren Sie dazu die übergeordnete Klasse mit dem Schlüsselwort super:

class Foo(Bar):
    def baz(self, arg):
        return super(Foo, self).baz(arg)

Durch die Verwendung der super()-Funktion vereinfachen Sie Ihre Codebasis, reduzieren die Kopplung zwischen Klassen und verbessern die Wartbarkeit Ihrer tiefen Klassenhierarchien in Python.

Das obige ist der detaillierte Inhalt vonWie rufe ich übergeordnete Klassenmethoden aus untergeordneten Klassen in Python auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn