Python-Lambda-Schließung

Rohan Timalsina 21 Juni 2023
  1. Syntax zur Verwendung der Lambda-Funktion in Python
  2. Verwenden Sie die Lambda-Funktion in Python
  3. Verwenden Sie die Closure-Funktion in Python
Python-Lambda-Schließung

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.

Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

Verwandter Artikel - Python Lambda