Die super Funktion in Python

Muhammad Waiz Khan 22 Juni 2021
Die super Funktion in Python

In diesem Tutorial werden Zweck und Verwendung der in Python integrierten Funktion super() erläutert. Eines der Kernkonzepte der objektorientierten Programmierung (OOP) ist die Vererbung, bei der eine Klasse (Unterklasse) auf die Eigenschaften und Methoden der übergeordneten Klasse oder Oberklasse zugreifen kann.

Bei mehreren Vererbungen kann eine Klasse Eigenschaften und Methoden von mehreren Klassen erben, was bedeutet, dass die Klasse mehrere Superklassen hat. Die Funktion super() ist nützlich und wird hauptsächlich bei Mehrfachvererbungen verwendet. Die Details und die Verwendung der Funktion super() mit Codebeispielen werden in diesem Lernprogramm erläutert.

Verwendung der eingebauten Funktion super() in Python

Die Funktion super() greift auf die überschriebenen geerbten Methoden in einer Klasse zu. Die Funktion super() wird in der untergeordneten Klasse mit Mehrfachvererbung verwendet, um auf die Funktion der nächsten übergeordneten Klasse oder Oberklasse zuzugreifen. Die Funktion super() ermittelt die nächste übergeordnete Klasse anhand der Method Resolution Order (MRO). Wenn der MRO für D C -> D -> B -> A -> object ist, sucht die Funktion super() nach der nächsten übergeordneten Klasse oder Superklassenmethode in der Reihenfolge D -> B -> A -> object.

Wenn die Klasse eine einzelne Vererbungsklasse ist, ist in diesem Fall die Funktion super() hilfreich, um die Methoden der übergeordneten Klassen zu verwenden, ohne ihren Namen explizit zu verwenden.

Die Funktion super(type) gibt ein Proxy-Objekt zurück, das die Methoden der übergeordneten oder Geschwisterklasse der Eingabe type aufruft. Die Syntax von super() unterscheidet sich in Python 2 und 3, wir können die Funktion super() in Python 2 verwenden, um die geerbte Methode mymethod() als super(type, self).mymethod(args) und in Python 3 als super().mymethod(args).

Schauen wir uns nun detaillierte Beispielcodes für die Verwendung der Funktion super() an, um die von der untergeordneten Klasse in Python geerbten Methoden aufzurufen.

Beispielcode:

class mysuper_class(object):
    def super_method(self):
        print("Method of the super class was called!")


class myclass(mysuper_class):
    def mymethod(self):
        super().super_method()


a = myclass()
a.mymethod()

Ausgabe:

Method of the super class was called

Verwandter Artikel - Python Class