Funcones anónimas (lambda)
Duración de la lección: 4:27 min
[1]:
#
# Función creada con nombre
# =============================================================================
#
def incr(x):
return x + 1
incr(1)
[1]:
2
[2]:
incr
[2]:
<function __main__.incr(x)>
[3]:
copia_de_incr = incr
copia_de_incr(1)
[3]:
2
[4]:
#
# Función anónima o lambda
# =============================================================================
#
incr_ = lambda x: x + 1
incr_(1)
[4]:
2
[5]:
#
# Las funciones lambda se puede aplicar
# directamente
#
(lambda x: x + 1)(2)
[5]:
3
[6]:
#
# Creación de una función que devuelve otra
#
def make_incrementor(n):
return lambda x: x + n
f = make_incrementor(42)
f(1)
[6]:
43
[7]:
#
# Función compuesta de varias subfunciones
# Principio de responsabilidad simple:
# cada función hace una tarea y solo una tarea
#
def complex_function(x):
def constant():
return 1
def first():
return x
def second():
return x ** 2
result = constant() + first() + second()
return result
complex_function(2)
[7]:
7