A Byte of Python

Schlüsselwort-Argumente

Wenn Sie Funktionen mit vielen Parametern haben, aber nur einige von ihnen angeben wollen, dann können Sie solchen Parametern Werte übergeben, indem Sie sie benennen. Man spricht hier auch von Schlüsselwort-Argumenten. Wir benutzen hier den Namen (ein Schlüsselwort) anstatt (wie bisher) die Position, um die Argumente der Funktion zu spezifizieren.

Dies hat zwei Vorteile. Erstens: Die Benutzung der Funktion wird einfacher, da wir uns keine Gedanken über die Reihenfolge der Argumente machen müssen. Zweites: Wir brauchen nur denjenigen Parametern Werte zu übergeben, die wir wirklich benötigen, vorausgesetzt, die anderen Parameter haben für uns akzeptable voreingestellte Argumentwerte.

Schlüsselwort-Argumente benutzen

Beispiel 7.6. Schlüsselwort-Argumente benutzen (funk_schluessel.py)

				
#!/usr/bin/python

def funk(a, b=5, c=10):
	print 'a ist', a, 'und b ist', b, 'und c ist', c

funk(3, 7)
funk(25, c=24)
funk(c=50, a=100)
				
				

Ausgabe

				
$ python funk_schluessel.py
a ist 3 und b ist 7 und c ist 10
a ist 25 und b ist 5 und c ist 24
a ist 100 und b ist 5 und c ist 50
				
				

So funktioniert es

Die Funktion funk hat einen Parameter ohne voreingestellten Argumentwert, gefolgt von zwei Parametern mit voreingestellten Argumentwerten.

Wenn wir die Funktion zum ersten Mal aufrufen, funk(3, 7), bekommt der Parameter a den Wert 3, der Parameter b den Wert 5 und c den voreingestellten Wert 10 zugewiesen.

Beim zweiten Aufruf, funk(25, c=24), bekommt die Variable a den Wert 25 aufgrund der Position des Argumentes. Danach bekommt der Parameter c den Wert 24 aufgrund seiner Benennung, d.h. als Schlüsselwort-Argument. Die Variable b erhält den voreingestellten Wert 5.

Beim dritten Aufruf der Funktion, funk(c=50, a=100), verwenden wir ausschließlich Schlüsselwort-Argumente, um die Werte anzugeben. Beachten Sie, dass wir den Wert des Parameters c vor dem des Parameters a angeben, obwohl a in der Funktionsdefinition vor c angegeben ist.