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:
def func():
return '!'
Pasemos al print el nombre de la función
sin paréntesis como una variable:
print(func)
Después de ejecutar el código, se mostrará en la consola un objeto especial que contiene información sobre esta función:
<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:
def func1():
print('!')
func2 = func1
func2() # mostrará '!'
¿Cuál será el resultado de ejecutar el siguiente código:
def func():
print('hello, user!')
greet = func
print(greet)
¿Cuál será el resultado de ejecutar el siguiente código:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))