Función como variable en Python
En Python, una función es esencialmente una variable. Y esto significa que también se puede pasar.
Supongamos que tenemos una función que devuelve un signo de exclamación:
pythondef func():
return '!'
Pasemos al print el nombre de la función
sin paréntesis como una variable:
pythonprint(func)
Después de ejecutar el código, se mostrará en la consola un objeto especial que contiene información sobre esta función:
python<function func at 0x0000022816383E20>
Ahora declaremos la variable func2,
a cuyo valor le asignaremos la función func1.
La función en sí no se pasará por
valor, sino por referencia como un objeto. Y al
llamar a func2 con paréntesis,
se mostrará en la consola el resultado de func1:
pythondef func1():
print('!')
func2 = func1
func2() # mostrará '!'
¿Cuál será el resultado de ejecutar el siguiente código:
pythondef func():
print('hello, user!')
greet = func
print(greet)
¿Cuál será el resultado de ejecutar el siguiente código:
pythondef getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))