LU05b - Innere und äußere Funktionen in Python

In Python können Funktionen innerhalb anderer Funktionen definiert werden. Diese inneren Funktionen sind auch als verschachtelte oder lokale Funktionen bekannt. Sie sind ein wichtiges Konzept, das in Closures, Decorators und anderen höherstufigen Funktionen in Python verwendet wird.

Grundkonzepte

Beispiel für innere Funktion

Ein einfaches Beispiel, um das Konzept zu veranschaulichen:

def outer_function(x):
    def inner_function(y):
        return x + y
    return inner_function
 
add_five = outer_function(5)
print(add_five(3))  # Output: 8

In diesem Beispiel ist inner_function die innere Funktion und outer_function die äußere Funktion. add_five ist ein Beispiel für ein Closure, das die innere Funktion zusammen mit dem Umgebungskontext (der Wert von x) speichert.

Zugriff auf den Umgebungskontext

Innere Funktionen haben Zugriff auf die Variablen und Parameter der äußeren Funktion, selbst wenn die äußere Funktion bereits beendet wurde. Dies wird als Closure bezeichnet.

def outer_function(x):
    def inner_function(y):
        return x + y
    return inner_function
 
add_five = outer_function(5)
print(add_five(3))  # Output: 8

In diesem Beispiel behält add_five den Wert von x (5) bei, auch nachdem outer_function beendet wurde.

Verwendungszwecke

Durch das Verständnis der Funktionsweise innerer und äußerer Funktionen kann man komplexere und modularere Code-Strukturen in Python erstellen.


© Kevin Maurizi