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.