Mehrere Python-Konstruktoren

Muhammad Maisam Abbas 10 Oktober 2023
  1. Konstruktoren in Python
  2. Mehrere Konstruktoren in Python
Mehrere Python-Konstruktoren

In diesem Tutorial werden Konstruktoren und die Methode zum Umgang mit der Notwendigkeit mehrerer Konstruktoren in Python erörtert.

Konstruktoren in Python

In Programmiersprachen wie Java, C++ und C# haben wir das Konzept einer Konstruktorfunktion, die nur ausgeführt wird, wenn ein Objekt der Klasse initialisiert wird. Die Konstruktorfunktion wird verwendet, um alle Klassenattribute zu initialisieren. Der Name dieser Konstruktorfunktion ist mit dem Namen der Klasse identisch. Das Konzept der Konstruktorfunktion ist in Python gleich, aber der Name der Konstruktorfunktion lautet __init__() für alle Klassen. Der Konstruktor in Python nimmt immer einen Parameter, d. h. einen Zeiger auf das aufrufende Objekt. Der folgende Codeausschnitt zeigt, wie wir einen nicht parametrisierten Konstruktor in Python erstellen können.

class Person:
    def __init__(self):
        print("Constructor Function")


if __name__ == "__main__":
    p1 = Person()

Ausgabe:

Constructor Function

Wir haben einen nicht parametrisierten Konstruktor für die Klasse Person erstellt und in der Hauptfunktion ein Klassenobjekt Person erstellt. Der Konstruktor wurde aufgerufen, als wir das Objekt mit p1 = Person() erstellt haben.

Mehrere Konstruktoren in Python

In den Programmiersprachen Java, C# und C++ gibt es ein Konzept namens Mehrfachkonstruktoren, bei dem wir beliebig viele Konstruktoren für eine einzelne Klasse erstellen können. Leider können wir in Python nicht mehrere Konstruktoren für eine einzelne Klasse definieren. Eine allgemeine Methode zum Umgehen dieser Einschränkung besteht darin, einen Standardparameterkonstruktor zu verwenden. Ein Standardparameterkonstruktor ist derjenige, der seinen Klassenattributen automatisch einen Wert zuweist, wenn beim Erstellen des Klassenobjekts kein Parameter übergeben wird. Der Standardparameterkonstruktor weist dem Klassenattribut den angegebenen Wert zu, wenn während der Objekterstellung ein Wert angegeben wird. Der folgende Codeausschnitt zeigt, wie Sie mit dem Standardparameterkonstruktor in Python die Notwendigkeit mehrerer Konstruktoren beseitigen können.

class Person:
    def __init__(self, name="Tom"):
        self.name = name

    def show(self):
        print("Name = ", self.name)


if __name__ == "__main__":
    p1 = Person()
    p2 = Person("Mark")
    p1.show()
    p2.show()

Ausgabe:

Name =  Tom
Name =  Mark

Wir haben im obigen Code einen Standardparameterkonstruktor erstellt, indem wir den Standardwert während der Funktionsdefinition angegeben haben. Der Konstruktor der Klasse Person nimmt einen Parameternamen und weist ihn dem Klassenparameter name zu. Der Standardwert des Parameternamens ist Tom. Wir haben in der Hauptfunktion zwei Objekte p1 und p2 der Klasse Person erstellt. Das Objekt p1 gibt bei der Initialisierung keinen Wert an; das Objekt p2 übergibt Mark als Konstruktorparameter. Wir haben dann die Funktion show() mit p1 und p2 aufgerufen. Die Funktion show() zeigt den Wert des Attributs name an. Wenn p1 die Funktion show() aufruft, ist die Ausgabe der Standardwert Name = Tom, aber wenn p2 die Funktion show() aufruft, ist die Ausgabe Name = Mark, weil wir angegeben haben Mark beim Erstellen des Objekts p2.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Python Constructor