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.
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)
$ 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
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.