A Byte of Python

Kapitel 15. Noch mehr Python

Inhaltsverzeichnis

Besondere Methoden
Einzelanweisungsblöcke
Listenkomprehension
Gebrauch von Listenkomprehension
Übergabe von Tupeln und Dictionaries in Funktionen
Der lambda-Operator
Gebrauch des lambda-Operators
Die exec- und eval-Anweisungen
Die assert-Anweisung
Die repr-Function
Zusammenfassung

Wir haben hiermit den größten Teil der verschiedenen Aspekte von Python angesprochen, die Sie benutzen werden. In diesem Kapitel werden wir einige weitere Aspekte besprechen, die Ihre Python-Kenntnisse noch etwas vollständiger machen werden.

Besondere Methoden

Es gibt einige besondere Methoden, die in Klassen eine spezielle Bedeutung haben, so wie die Methoden __init__ oder __del__, deren Bedeutung wir bereits kennen gelernt haben.

Allgemein werden spezielle Methoden verwendet, um eine bestimmte Funktionalität zu imitieren. Wenn Sie zum Beispiel die Indizierungs-Operation x[key] für Ihre Klasse benutzen wollen (als wenn Sie eine Liste oder ein Tupel wäre), dann implementieren Sie einfach die Methode __getitem__(), und haben dieses Problem damit gelöst. Wenn Sie darüber nachdenken, ist es genau das, was Python selber bei der Klasse list macht. Man spricht bei dieser Vorgehensweise auch vom Überladen von Operatoren.

Einige nützliche speziellen Methoden sind in der folgenden Tabelle aufgelistet. Wenn Sie alle speziellen Methoden wissen wollen, dann finden Sie diese große Liste im Python-Referenz-Handbuch.

Tabelle 15.1. Einige spezielle Methoden

NameErklärung
__init__(self, ...) Diese Methode wird aufgerufen, gerade bevor das neu erzeugte Objekt zum Gebrauch zurückgegeben wird.
__del__(self) Wird aufgerufen gerade bevor das Objekt zerstört wird. ,
__str__(self) Wird aufgerufen, wenn man das Objekt mit der print-Anweisung ausgibt oder wenn str() benutzt wird.
__lt__(self, other) Wird aufgerufen, wenn der Operator < für 'kleiner als' (less than) benutzt wird. Entsprechend gibt es spezielle Methoden für alle möglichen Operatoren (+, >, usw.).
__getitem__(self, key) Wird aufgerufen, wenn der Indizierungs-Operator x[key] verwendet wird.
__len__(self) Wird aufgerufen, wenn die eingebaute len()-Funktion auf das Sequenz-Objekt angewendet wird.