A Byte of Python

Der Selbstbezug

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.

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

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.