5. Funktionen: Default und Schlüsselwort-Argumente
5.1 Listing "Default Argument"
In vielen Fällen ist es nützlich, ein default-Argument vorzugeben. Das kommt dann zur Anwendung, wenn kein Argument gegeben ist:
def gruessen_mit_namen(name="unbekanntes Wesen"):
print("Hallo " + name + "!")
gruessen_mit_namen()
#=> Hallo Maria!
gruessen_mit_namen()
#=> Hallo unbekanntes Wesen!
5.2 Listing "Schlüsselwort Argument"
Bei Funktionen, die mehr als zwei oder drei Argumente erwarten, kann es schwierig werden, sich die richitige Reihenfolge zu merken. Hier helfen sogenannte Schlüsselwort-Argumente, die sich auf die Argumentnamen in der Funktionsdefinition beziehen.
def satz_fabrik(name, hobby, leibgericht):
print("Ich heiße " + name + ", mein Hobby ist " + hobby + ", und ich esse gern " + leibgericht + ".")
satz_fabrik("Pit", "Lesen", "Kartoffeln mit Quark")
#=> Ich heiße Pit, mein Hobby ist Lesen, und ich esse gern Kartoffeln mit Quark.
satz_fabrik(hobby="Lesen", name="Pit", leibgericht="Kartoffeln mit Quark")
#=> Ich heiße Pit, mein Hobby ist Lesen, und ich esse gern Kartoffeln mit Quark.
5.3 Listing "Default- und Schlüsselargument"
Besonders nützlich ist die Kombination aus Schlüsselwort- und Default-Argumenten. Das gilt besonders, wenn eine Funktion viele Argumente verarbeiten kann. In solchen Fällen können Default-Argumente verwendet werden, um Standardwerte zu setzen, während mit Schlüsselwort-Argumenten gezielt nur die relevanten Werte überschrieben werden können, ohne die Reihenfolge zu beachten. Diese Flexibilität erleichtert das Schreiben von Code, der sowohl lesbar als auch erweiterbar ist.
def satz_fabrik(name="Unbekannt", hobby="Nichtstun", leibgericht="Nichts"):
print("Ich heiße " + name + ", mein Hobby ist " + hobby + ", und ich esse gern " + leibgericht + ".")
satz_fabrik()
#=> Ich heiße Unbekannt, mein Hobby ist Nichtstun, und ich esse gern Nichts.
satz_fabrik(leibgericht="Pizza")
#=> Ich heiße Unbekannt, mein Hobby ist Nichtstun, und ich esse gern Pizza.
satz_fabrik(hobby="Stricken")
#=> Ich heiße Unbekannt, mein Hobby ist Stricken, und ich esse gern Nichts.
satz_fabrik("Michaela", leibgericht="Chop Suey")
#=> Ich heiße Michaela, mein Hobby ist Nichtstun, und ich esse gern Chop Suey.