Bei einigen Funktionen möchten Sie vielleicht die Parameter ganz oder
teilweise optional machen und voreingestellte Werte verwenden,
wenn der Benutzer für solche Parameter keine Werte bereitstellt. Dies kann man mit
voreingestellten Argumentwerten erreichen. Sie können voreingestellte Argumentwerte für Parameter
angeben, indem Sie in der Funktionsdefinition nach dem Parameternamen den Zuweisungsoperator
(=
) und danach den voreingestellten Wert schreiben.
Beachten Sie, dass der voreingestellte Wert für das Argument eine Konstante sein sollte. Genauer gesagt sollte der voreingestellte Wert unveränderbar sein - wir werden in den nächsten Kapiteln näher erklären, was das heißt. Halten Sie dies zuerst einmal so in Erinnerung.
Beispiel 7.5. Verwendung voreingestellter Argumentwerte (funk_vorein.py)
#!/usr/bin/python def sag(nachricht, wiederholungen = 1): print nachricht * wiederholungen sag('Hallo') sag('Welt', 5)
Die Funktion sag
wird verwendet, um einen String
so oft wie gewünscht auszugeben. Wenn wir keinen Wert übergeben, wird der String
wie voreingestellt nur einmal ausgegeben. Wir erreichen dies, indem wir für den
Parameter wiederholungen
den voreingestellten
Argumentwert 1
angeben.
Beim ersten Aufruf von sag
übergeben wir nur den String,
so dass dieser einmal ausgegeben wird. Beim zweiten Aufruf von sag
übergeben wir sowohl den String an als auch ein Argument 5
, das
angibt, dass sag den String 5 mal ausgeben soll.
Nur die Parameter am Ende der Parameterliste können voreingestellte Werte besitzen, d.h. es darf kein Parameter mit einem voreingestellten Argumentwert vor einem Parameter ohne voreingestellten Argumentwert nach der Reihenfolge der Parameter vorkommen, wie sie in der Parameterliste der Funktion angegeben sind.
Der Grund hierfür ist, dass die Werte den Parametern durch Ihre Position zugewiesen
werden. Zum Beispiel ist def funk(a, b=5)
eine gültige Funktionsdefinition,
wohingegen def funk(a=5, b)
nicht gültig ist.