====== LU09b - Ergänzedes Wissen ======
===== Parameter mit Namen aufrufen =====
In Python können wir auch beim Aufruf von Funktionen den Variablennamen mitgeben. Damit können wir unseren Code besser lesbar machen.
Wir haben diese Funktion und möchten sie verwenden.
def value_beween(value, lower_bound, upper_bound):
'''
Returns True uf Value is between lower_bound and upper_bound
'''
return lower_bound <= value <= upper_bound
Wir können diese Funktion nun so aufrufen:
value_beween(25,0,30) # True
Oder wir rufen die Funktion mit benennten Argumenten auf:
value_beween(value = 25, lower_bound = 0, upper_bound = 30) # True
===== Defaultwerte für Parameter =====
Wenn Sie ''argument_name=default_value'' in der Funktionsdefinition verwenden, wird der Standardwert verwendet, wenn das entsprechende Argument weggelassen wird.
def func_default(arg1, arg2='default_x', arg3='default_y'):
print(arg1)
print(arg2)
print(arg3)
func_default('a')
a
default_x
default_y
func_default('a', 'b')
a
b
default_y
func_default('a', arg3='c')
a
default_x
c
**Beachte:** Das der Parameter ''arg1'' keinen default Wert hat, muss der Parameter ''arg1'' beim Funktionsaufruf immer angegeben werden.
===== Mehrere Return-Werte =====
Eine Funktion kann mehr als nur einen Return-Wert zurückgeben, indem sie einfach durch Kommas getrennt werden.
Definieren wir zum Beispiel eine Funktion, die eine Zeichenkette und eine ganze Zahl zurückgibt, wie folgt:
def test():
return 'abc', 100
In Python werden kommagetrennte Werte als ''Tupel'' (nicht veränderbare Liste) betrachtet. Aus diesem Grund gibt die Funktion im obigen Beispiel ein Tupel mit jedem Wert als Element zurück.
result = test()
print(result)
print(type(result))
('abc', 100)
Jedes Element hat jedoch auch einen eigenen definierten Typ.
print(result[0])
print(type(result[0]))
abc
print(result[1])
print(type(result[1]))
100
Die Angabe eines Index, der die Anzahl der definierten Rückgabewerte überschreitet, führt natürlich zu einem Fehler.
print(result[2])
IndexError: tuple index out of range
Sie können mehrere Rückgabewerte auch direkt an verschiedene Variablen vergeben.
a, b = test()
print(a)
print(b)
abc
100
Dasselbe gilt für drei oder mehr Rückgabewerte.
def test2():
return 'abc', 100, [0, 1, 2]
a, b, c = test2()
print(a)
print(b)
print(c)
abc
100
[0, 1, 2]
----
{{tag>M319-F2G M319-F2F M319-F2E}}
[[https://creativecommons.org/licenses/by-nc-sa/4.0/ch/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] (c) Kevin Maurizi