Empezamos con las funciones lambda o anónimas y dejamos un tiempo Tkinter. Volveremos cuando tengas los conocimientos necesarios para entender fácilmente muchas cosas que van a venir en el curso.
¿Qué son las funciones lambda o anónimas?
Las funciones lambda o anónimas, son un tipo de sintaxis especial para crear funciones cortas con una sintaxis reducida, las cuales vamos a necesitar en Tkinter y en muchas otras cosas.
¿Por qué se llaman anónimas estas funciones?
Esto es debido a que no hace falta darles un nombre.
Diferencia entre función normal y lambda de Python
Aparte de la sintaxis reducida, la diferencia fundamental entre una función normal y una lambda, es que las funciones lambda no pueden tener más de una expresión. Sí que pueden tener tantos argumentos como queramos.
Ejemplo de uso de función lambda
Aquí tienes una función de multiplicación normal y corriente. Muy sencilla.
def multiplicacion(numero1,numero2): return numero1 * numero2
Al ser una función con una sola expresión (return numero1 * numero2), se puede utilizar una función lambda perfectamente.
lambda numero1, numero2 : numero1 * numero2
¿Cómo utilizamos las funciones lambda?
Aquí llega la cuestión de ¿cómo realizo entonces la llamada a una función que no tiene nombre con el que ser llamada?
Solo tienes que almacenar la función en una variable:
multiplicacion = lambda numero1, numero2 : numero1 * numero2 resultado1 = multiplicacion(10,7) resultado2 = multiplicacion(3,8) print(resultado1) print(resultado2)
Resultado en la consola
70
24
Como puedes ver, ahora podemos llamar a la función con el mismo nombre de la variable que la almacena. Con lo que tenemos una mini función guardada en una variable.
¿Tengo que guardar esta función lambda en una variable para poder llamarla?
No, Python es genial y tiene infinidad de posibilidades (y estas están creciendo a buen ritmo, un buen ejemplo, es la adición del match hace unos meses).
Si quieres usar solo una vez la función, puedes hacer la declaración y llamada en la misma línea y sin variable con esta sintaxis. Envuelve la función con unos paréntesis y luego pon la llamada:
(lambda numero1, numero2 : print(numero1 * numero2))(7, 5)
Resultado en la consola
35
Te dejo unos ejercicios con las funciones lambda para que practiques lo aprendido.
Un comentario en «Las funciones lambda o anónimas – 100 días de Python #10»