lambdas en Python

El proposito de Lamdas es crear mini funciones o funciones no declaradas durante su ejecucion. Esto es util en el caso que necesitemos pasar nuevos datos en los parametros de la funcion. Aqui un ejemplo rapido:
import sys
from tkinter import *

widget = Button(None, text='Hola mundo', command=(lambda:print("hola mundo de lambda") or sys.exit()))
widget.pack()
widget.loop()
Mas ejemplos mas adelante pero para analisar el pasado ejemplo pudimos ver como via el uso de lambda contiene solo una expresion y emula el script completo. Esta funcion usa el operador or para forzar el uso de dos expresiones.

Por que usar lambdas?

Lambda son funciones anonimas, es decir que no estan definidas, estas te ayudaran a reutilizar codigo y tambien te permitiran usarlas en cojunto con otros operadores. Lambdas usualmente usan una sintaxis de (lambda: ...). Sin embargo tambien pueden ser definidas de otra manera como lo es, la siguiente:

def handler(A,B):        # se invocaria sin argumentos

    ...
X=42
def func():                        #capa de indirección
    handler(X, 'spam')

Button(text='ni', command=func)

En este ejemplo podemos ver como agregamos con declaracion def haciendola una syntaxis mas comun y puede ser una expresion anidada. Una restriccion de las funciones lambdas es que son funciones que no pueden tener otros elementos como condicionales, bucles, etc de una forma tradicional. Otra restriccion es que la funcion deja de existir una vez que fue usada de forma unica.


Comentarios en Lambdas.
Comments