Kapitel 6
Funktionen
186
Sie arbeiten häufig ineffizient, was sich in langen Laufzeiten ausdrückt. Beim obigen
Beispiel sehen Sie, dass während der Abarbeitung des Aufrufs
fib(5) drei Mal der Auf-
ruf
fib(2) erfolgt. Das heißt: Überflüssigerweise wird dieselbe Rechnung mehrfach
durchgeführt.
6.12 Funktionen als Objekte
In der Standard-Typ-Hierarchie von Python werden Funktionen als aufrufbare Objekte (call-
able objects) bezeichnet. Sie werden mit Daten-Objekten sozusagen »gleich behandelt«. So
besitzen Funktionen wie Daten-Objekte eine Identität, einen Typ und einen Wert. Sie kön-
nen das am Beispiel der Standardfunktion
len(), die die Länge einer Sequenz berechnet,
ausprobieren:
Diese Angaben haben freilich für die Programmierung nur eine geringe praktische Bedeu-
tung. Der Wert des Funktionsobjektes
len ist einfach nur eine verbale Beschreibung der
Funktion, aber kein Datum im eigentlichen Sinne. Man kann einer Funktion weitere
Namen geben und dann die neuen Namen zum Aufruf der Funktion verwenden:
Wie alle Objekte können Funktionen hinsichtlich Gleichheit und Identität verglichen wer-
den:
Neue Namen für Funktionen können sehr praktisch sein. Für Funktionen mit langen
Namen, die in einem Programm häufig verwendet werden, können Sie Abkürzungen ein-
>>> id(len)
28661520
>>> type(len)
<class 'builtin_function_or_method'>
>>> len
<built-in function len>
>>> length = len
>>> länge = len
>>> len("Wort")
4
>>> länge("Wort")
4
>>> len == länge
True
>>> len is length
True
>>> len is type
False

Get Python 3 - Lernen und professionell anwenden now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.