In diesem Kapitel werden wir uns damit beschäftigen, wie Funktionen in Python als Argumente für andere Funktionen verwendet oder als Rückgabewerte aus Funktionen zurückgegeben werden können. Diese Konzepte sind besonders nützlich, um flexible und wiederverwendbare Codestrukturen zu schaffen. Lass uns direkt in die Details eintauchen!
Funktionen als Argumente
In Python können wir Funktionen als Argumente für andere Funktionen verwenden. Das bedeutet, dass eine Funktion eine andere Funktion in ihrem Rumpf aufrufen kann. Hier ist ein einfaches Beispiel:
def verdoppeln(x):
return x * 2
def vervierfachen(x):
return x * 4
def anwenden_funktion(func, x):
return func(x)
ergebnis1 = anwenden_funktion(verdoppeln, 5) # 10
ergebnis2 = anwenden_funktion(vervierfachen, 5) # 20
Funktionen als Rückgabewerte
In einigen Fällen möchten wir möglicherweise eine Funktion erstellen, die eine andere Funktion als Rückgabewert liefert. Hier ist ein Beispiel:
def multiplikator(n):
def multiplizieren(x):
return x * n
return multiplizieren
verdoppeln = multiplikator(2)
vervierfachen = multiplikator(4)
print(verdoppeln(5)) # Ausgabe: 10
print(vervierfachen(5)) # Ausgabe: 20
Funktionen in Kombination mit Lambda-Funktionen
Funktionen als Argumente und Rückgabewerte können auch effektiv mit Lambda-Funktionen kombiniert werden. Hier ist ein Beispiel, das zeigt, wie man eine Funktion als Argument verwendet und eine Lambda-Funktion zurückgibt:
def operation_anwenden(operation):
if operation == "add":
return lambda x, y: x + y
elif operation == "sub":
return lambda x, y: x - y
addieren = operation_anwenden("add")
subtrahieren = operation_anwenden("sub")
print(addieren(5, 3)) # Ausgabe: 8
print(subtrahieren(5, 3)) # Ausgabe: 2
In diesem Kapitel haben wir gelernt, wie man Funktionen als Argumente und Rückgabewerte in Python verwendet. Diese Konzepte ermöglichen es uns, flexiblere und modularere Codestrukturen zu erstellen. Im nächsten Teil des Tutorials werden wir uns mit objektorientierter Programmierung in Python beschäftigen, um weiterführende Programmierkonzepte zu erlernen.