Python-Lambda-Schließung
- Syntax zur Verwendung der Lambda-Funktion in Python
- Verwenden Sie die Lambda-Funktion in Python
- Verwenden Sie die Closure-Funktion in Python
Eine Lambda-Funktion wird ohne Namen definiert. Sie wird in Python auch als anonyme Funktion bezeichnet.
Wir verwenden ein def
-Schlüsselwort, um eine reguläre Funktion in Python zu definieren, während das lambda
-Schlüsselwort verwendet wird, um eine Lambda-Funktion zu definieren.
In diesem Tutorial lernen Sie, die Lambda-Funktion und Closure in Python zu verwenden.
Syntax zur Verwendung der Lambda-Funktion in Python
Die Syntax für die Lambda-Funktion in Python lautet:
lambda arguments: expression
Eine Lambda-Funktion kann nur mehrere Argumente, aber nur einen Ausdruck haben. Es wertet den Ausdruck aus und gibt das Ergebnis zurück.
Verwenden Sie die Lambda-Funktion in Python
Das folgende Beispiel addiert 5 zum angegebenen Wert und gibt das Ergebnis aus.
def total(a):
return a + 5
print(total(10))
Ausgang:
15
Fügen Sie mehrere Argumente hinzu und geben Sie das Ergebnis zurück.
def total(a, b, c):
return a + b + c
print(total(10, 15, 20))
Ausgang:
45
Im obigen Beispiel ist lambda a,b,c: a+b+c
eine Lambda-Funktion, wobei a,b,c
Argumente und a+b+c
ein Ausdruck ist. Der Ausdruck wird berechnet und in der Ausgabe angezeigt.
Die Lambda-Funktion hat keinen Namen und wird einer Variablen total
zugewiesen.
Diese Linie:
def total(a, b, c):
return a + b + c
Es ist äquivalent dazu:
def total(a, b, c):
return a + b + c
Verwenden Sie die Closure-Funktion in Python
Bevor Sie Closure lernen, müssen Sie zuerst Pythons Konzept einer verschachtelten Funktion und einer nicht lokalen Variablen verstehen.
Eine verschachtelte Funktion wird innerhalb einer anderen Funktion definiert und kann auf Variablen des einschließenden Gültigkeitsbereichs zugreifen.
Auf solche nicht lokalen Variablen kann in Python nur innerhalb ihres Gültigkeitsbereichs und nicht außerhalb ihres Gültigkeitsbereichs zugegriffen werden.
Das folgende Beispiel zeigt eine verschachtelte Funktion, die auf eine nicht lokale Variable zugreift.
def outerFunc(txt): # outer enclosing function
def innerFunc(): # nested function
print(txt)
innerFunc()
outerFunc("Hello World")
Ausgang:
Hello World
Wie Sie sehen, hat die verschachtelte Funktion innerFunc
auf die nicht-lokale Variable txt
der einschließenden Funktion outerFunc
zugegriffen.
Ein Abschluss ist ein Funktionsobjekt, das sich Werte in einschließenden Bereichen merken kann, selbst wenn sie den Bereich verlassen.
def outerFunc(txt): # outer enclosing function
def innerFunc(): # nested function
print(txt)
return innerFunc
myFunc = outerFunc("Hello World")
myFunc()
Ausgang:
Hello World
In diesem Beispiel gibt die verschachtelte Funktion die Funktion innerfunc()
zurück, anstatt sie aufzurufen. Die Funktion outerFunc()
wird mit dem Text Hello World
aufgerufen und einer Variablen myFunc
zugewiesen.
Und beim Aufruf von myFunc()
wurde der Wert ausserhalb des Geltungsbereichs gespeichert.
Wenn Sie die ursprüngliche Funktion entfernen, wird der Wert im einschließenden Gültigkeitsbereich weiterhin gespeichert.
del outerFunc
myFunc()
Ausgang:
Hello World
Das Folgende ist eine einfache Demonstration der Verwendung der Lambda-Funktion und des Abschlusses in Python.
def sum(x):
def total():
def calc(x):
return x + 5
print(calc(x))
return total
myFunc = sum(5)
myFunc()
Ausgang:
10
Jetzt sollten Sie wissen, wie man Lambda-Funktionen und Closures in Python verwendet. Wir hoffen, dass Sie dieses Tutorial hilfreich finden.