Funktionen
Syntax
Funktionen werden mit dem Schlüsselwort def eingeleitet
def funktions-name(Parameterliste):
Anweisung(en)
Die Parameterliste besteht aus einem oder mehr Bezeichnern, die durch Kommata
getrennt sind.
Parameter können obligatorisch und optional sein. Die optionalen Parameter (0 oder mehr) folgen den obligatorischen.
Beispiel:
#!/usr/bin/python
def add(x, y):
"""Gib x plus y zurueck."""
return x + y
print add(2, 3)
In der folgenden interaktiven Sitzung wird obige Funktion aufgerufen:
>>> execfile("funktion1.py")
5
>>> add(4,5)
9
>>> add(8,3)
11
>>>
Beispiel einer Funktion mit optionalen Parametern
#!/usr/bin/python
def add(x, y=5):
"""Gib x plus y zurueck."""
return x + y
print add(2, 3)
Aufrufe der Funktionen könnten wie folgt aussehen:
>>> execfile("funktion1.py")
5
>>> add(4)
9
>>> add(8,3)
11
>>>
Docstring
Die erste Anweisung eines Funktionsrumpfes ist normalerweise eine
Zeichenkette, die als Funktionsname.__doc__ abfragbar ist.
Diese Anweisung wird Docstring genannt.
Beispiel:
>>> execfile("funktion1.py")
>>> add.__doc__
'Gib x plus y zurueck.'
>>> add2.__doc__
'Gib x plus y zurueck. Y optional'
>>>
Schlüsselwortparameter
Dabei handelt es sich um eine alternative Möglichkeit eine Funktion
aufzurufen. Die Funktionsdefinition selbst ändert sich nicht.
Ein Beispiel:
def sumsub(a, b, c=0, d=0):
return a - b + c - d
Als Schlüsselwort-parameter dürfen nur solche verwendet werden, die nicht bereits als Positionsargumente verwendet wurden.
>>> execfile("funktion1.py")
>>> sumsub(12,4)
8
>>> sumsub(12,4,27,23)
12
>>> sumsub(12,4,d=27,c=23)
4
Beliebige Anzahl von Parametern
Man hat sehr häufig Fälle, in denen die Anzahl der beim Aufruf nötigen
Parameter a-priori nicht bekannt ist. Man kann dies in Python durch eine
sogenannte Tupel-Refernz realisieren. Der letzte Parameter erhält einen *
vorangestellt, was man keineswegs mit der entsprechenden C-Syntax verwechseln
sollte.
Beispiel:
def beliebig(x, y, *mehr):
print "x=", x, ", x=", y
print "mehr: ", mehr
x und y sind in obiger Funktion zwei gewöhnliche (Positions-)Parameter. Der
Stern vor dem dritten Parameter *mehr referenziert ein Tupel.
Beispiel:
>>> execfile("funktion1.py")
>>> beliebig(3,4)
x= 3 , x= 4
mehr: ()
>>> beliebig(3,4, "Hallo Welt", 3 ,4)
x= 3 , x= 4
mehr: ('Hallo Welt', 3, 4)

Buch kaufen
Buch kaufen
Buch kaufen
