Es gibt viele Methodennamen, die in Pythonklassen eine besondere Bedeutung haben.
Wir werden nun die Bedeutung der Methode __init__
sehen.
Die Methode __init__
wird aufgerufen, sobald ein Objekt einer Klasse
instanziiert wird. Die Methode kann dafür benutzt werden, ihr Objekt auf irgendeine Weise zu
initialisieren. Beachten Sie die doppelten Unterstriche sowohl am Anfang als
auch am Ende des Namens.
Beispiel 11.3. Benutzung der __init__-Method (klasse_init.py)
#!/usr/bin/python class Person: def __init__(self, name): self.name = name def sagHallo(self): print 'Hallo, mein Name ist', self.name p = Person('Swaroop') p.sagHallo() # Dieses kurze Beispiel kann auch als # Person('Swaroop').sagHallo() geschrieben werden.
Hier definieren wir die Methode __init__
so,
dass sie einen Parameter name
entgegennimmt
(zusammen mit dem üblichen self
).
Wir erzeugen hier einfach ein neues Feld, das ebenfalls name
heißt.
Beachten Sie, dass dies zwei unterschiedliche Variablen sind, obwohl sie den gleichen Namen haben.
Die Schreibweise mit dem Punkt ermöglicht es uns, zwischen den beiden zu unterscheiden.
Beachten Sie vor allem, dass wir die Methode __init__
nicht explizit aufrufen, sondern die Argumente in Klammern nach dem Klassennamen übergeben,
wenn wir eine neue Instanz der Klasse erzeugen. Das ist die besondere Bedeutung dieser Methode.
Nun können wir das Feld self.name
in unseren Methoden benutzen,
wie es anhand der Methode sagHallo
demonstriert wird.
Die Methode __init__
entspricht einem
Konstruktor in C++, C# oder Java.