Funzione come variabile in Python
In Python una funzione è essenzialmente una variable. E questo significa che può anche essere passata.
Supponiamo di avere una funzione che restituisce un punto esclamativo:
def func():
return '!'
Passiamo a print il nome della funzione
senza parentesi tonde come variabile:
print(func)
Dopo l'esecuzione del codice, nella console verrà visualizzato un oggetto speciale, contenente informazioni su questa funzione:
<function func at 0x0000022816383E20>
Ora dichiariamo una variabile func2,
al cui valore passeremo la funzione func1.
La funzione stessa verrà passata non per
valore, ma per riferimento come oggetto. E quando
si chiama func2 con le parentesi tonde
in console verrà visualizzato il risultato di func1:
def func1():
print('!')
func2 = func1
func2() # visualizzerà '!'
Quale sarà il risultato della seguente esecuzione del codice:
def func():
print('hello, user!')
greet = func
print(greet)
Quale sarà il risultato della seguente esecuzione del codice:
def getSum(num1, num2):
res = num1 + num2
return res
func = getSum
print(func(2, 3))