A Byte of Python

Die __init__-Methode

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.

Benutzung der __init__-Method

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.
				
				

Ausgabe

				
$ python klasse_init.py
Hallo, mein Name ist Swaroop
				
				

So funktioniert es

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.

Anmerkung für C++/Java/C#-Programmierer

Die Methode __init__ entspricht einem Konstruktor in C++, C# oder Java.