Cierre Python Lambda

Rohan Timalsina 21 junio 2023
  1. Sintaxis para usar la función Lambda en Python
  2. Usar la función Lambda en Python
  3. Usar la función de cierre en Python
Cierre Python Lambda

Una función lambda se define sin nombre. También se conoce como una función anónima en Python.

Usamos una palabra clave def para definir una función regular en Python, mientras que la palabra clave lambda se usa para definir una función lambda.

Este tutorial le enseñará a usar la función lambda y el cierre en Python.

Sintaxis para usar la función Lambda en Python

La sintaxis de la función lambda en Python es:

lambda arguments: expression

Una función lambda solo puede tener múltiples argumentos pero solo una expresión. Evalúa la expresión y devuelve el resultado.

Usar la función Lambda en Python

El siguiente ejemplo suma 5 al valor dado e imprime el resultado.

def total(a):
    return a + 5


print(total(10))

Producción :

15

Agregue múltiples argumentos y devuelva el resultado.

def total(a, b, c):
    return a + b + c


print(total(10, 15, 20))

Producción :

45

En el ejemplo anterior, lambda a,b,c: a+b+c es una función lambda donde a,b,c son argumentos y a+b+c es una expresión. La expresión se calcula y se muestra en la salida.

La función lambda no tiene nombre y está asignada a una variable total.

Esta línea:

def total(a, b, c):
    return a + b + c

Es equivalente a esto:

def total(a, b, c):
    return a + b + c

Usar la función de cierre en Python

Antes de aprender el cierre, primero debe comprender el concepto de Python de una función anidada y una variable no local.

Una función anidada se define dentro de otra función y puede acceder a variables del ámbito adjunto.

Solo se puede acceder a dichas variables no locales dentro de su alcance y no fuera de su alcance en Python.

El siguiente ejemplo muestra una función anidada que accede a una variable no local.

def outerFunc(txt):  # outer enclosing function
    def innerFunc():  # nested function
        print(txt)

    innerFunc()


outerFunc("Hello World")

Producción :

Hello World

Como puede ver, la función anidada innerFunc ha accedido a la variable no local txt de la función envolvente outerFunc.

Un cierre es un objeto de función que puede recordar valores en ámbitos adjuntos incluso si están fuera del ámbito.

def outerFunc(txt):  # outer enclosing function
    def innerFunc():  # nested function
        print(txt)

    return innerFunc


myFunc = outerFunc("Hello World")
myFunc()

Producción :

Hello World

En este ejemplo, la función anidada devuelve la función innerfunc() en lugar de llamarla. La función outerFunc() se llama con el texto Hello World y se asigna a una variable myFunc.

Y al llamar a myFunc(), el valor se recordaba fuera del alcance.

Si elimina la función original, el valor en el ámbito adjunto aún se recordará.

del outerFunc
myFunc()

Producción :

Hello World

La siguiente es una demostración simple del uso de la función lambda y el cierre en Python.

def sum(x):
    def total():
        def calc(x):
            return x + 5

        print(calc(x))

    return total


myFunc = sum(5)
myFunc()

Producción :

10

Ahora debería saber cómo usar funciones lambda y cierres en Python. Esperamos que este tutorial le resulte útil.

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

Artículo relacionado - Python Lambda