Klassenmethoden haben nur eine Besonderheit gegenüber gewöhnlichen Funktionen - sie müssen
einen zusätzlichen ersten Namen haben, der am Beginn der Parameterliste hinzugefügt wird,
dabei übergibt man diesem Parameter jedoch nicht
einen Wert, wenn man die Methode aufruft, sondern Python sorgt dafür. Diese spezielle Variable
repräsentiert das Objekt selbst, und es hat sich eingebürgert, ihr den Namen self
zu geben.
Man könnte diesem Parameter zwar irgendeinen Namen geben, aber es wird dennoch ausdrücklich
empfohlen, den Namen self
zu benutzen - jeder andere Name ist
an dieser Stelle eindeutig verpönt. Es hat viele Vorzüge, einen Standardnamen zu benutzen - jeder Leser
Ihres Programms wird ihn sofort erkennen, und spezielle IDEs (Integrierte
Entwicklungsumgebungen) können einen unterstützen, wenn man die Bezeichnung self
verwendet.
Das self
in Python entspricht dem self
-Zeiger in C++
und dem this
in Java und C#.
Sie fragen sich wahrscheinlich, auf welche Weise Python den Wert für self
übergibt und warum Sie dafür keinen Wert zu übergeben brauchen. Ein Beispiel wird dies klar machen.
Angenommen, Sie haben eine Klasse, die MeineKlasse
heißt und eine
Instanz dieser Klasse, die MeinObjekt
heißt. Wenn Sie eine Methode dieses
Objekts als MeinObjekt.methode(param1, param2)
aufrufen, dann wird dies von
Python automatisch in MeineKlasse.methode(MeinObjekt, param1, param2)
umgewandelt - und genau dafür ist dieses besondere self
da.
Das bedeutet auch, dass man selbst bei einer Methode, die keine Parameter entgegennimmt,
dennoch diese Methode mit einem self
-Parameter definieren muss.