A Byte of Python

Voreingestellte Argumentwerte

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.

Verwendung voreingestellter Argumentwerte

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)
				
				

Ausgabe

				
$ python funk_vorein.py
Hallo
WeltWeltWeltWeltWelt
				
				

So funktioniert es

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.

Wichtig

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.