Heim > Artikel > Backend-Entwicklung > Welche Verwendung finden die Methoden super() und __init__() in Python?
Die Funktionen der Methoden super() und __init__() in Python: Die Methode __init__() wird zum Erstellen von Instanzvariablen von Objekten verwendet, und die Methode super() wird zum Aufrufen von Methoden der übergeordneten Klasse verwendet.
__init__() wird im Allgemeinen zum Erstellen von Instanzvariablen von Objekten oder für einmalige Operationen verwendet. super() wird zum Aufrufen der Methode der übergeordneten Klasse verwendet und kann zur Lösung des Problems der Mehrfachvererbung verwendet werden. Bei der Einzelvererbung haben super() und __init__() ähnliche Funktionen.
(Empfohlenes Tutorial: Python-Video-Tutorial )
Hauptunterschied:
Die Verwendung der super()-Vererbung erfordert keinen expliziten Verweis auf Basisklasse, die die Wartung erleichtert, wenn sich die übergeordnete Klasse ändert;
super() kann nur in Klassen neuen Stils verwendet werden und muss das Objektobjekt erben. Im Falle einer Mehrfachvererbung ist die Vererbungsreihenfolge betroffen. Der direkte Aufruf der übergeordneten Klassenmethode unter Verwendung des Klassennamens bringt Probleme wie Suchreihenfolge und wiederholte Aufrufe mit sich. super() gibt die nächste Klasse in der Vererbungssequenz zurück, nicht die übergeordnete Klasse.
Die von super() und __init__() in der Einzelvererbung implementierten Funktionen sind ähnlich
Ergebnis:
Der Unterschied besteht darin, dass Sie bei Verwendung der super()-Vererbung nicht explizit auf die Basisklasse verweisen müssen.
Super ist nicht die übergeordnete Klasse, sondern die nächste Klasse in der Vererbungssequenz. Im Falle einer Mehrfachvererbung entspricht die Vererbungsreihenfolge super() der Rückgabe der nächsten Klasse in der Vererbungsreihenfolge, nicht der übergeordneten Klasse
Das obige ist der detaillierte Inhalt vonWelche Verwendung finden die Methoden super() und __init__() in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!