Funzioni come variabili
In Python qualsiasi cosa può essere considerato come una variabile, persino le funzioni. Infatti, anche se può essere all’inizio poco intuitivo è possibile assegnare una funzione ad una variabile, in questo modo è come se avessimo dato un nuovo nome alla variabile.
def foo():
print("Hello World")
variabile = foo
variabile()
Eseguendo si ottiene
>>>
Hello World
L’assegnazione di una variabile di una funzione è ben riconoscibile rispetto all’assegnazione di un valore restituito di una funzione ad una variabile, poichè il nome della funzione compare senza parentesi tonde.
variabile = foo # funzione come valore della variabile
variabile = foo() # valore restituito della funzione come valore della variabile
Funzioni come argomenti di altre funzioni
Attenzione a non confondersi anche qui con il caso del valore restuito. Qui è l’intera funzione che viene passata come argomento di una funzione. Riconoscibile anche qui per il fatto che la funzione non presenta le parentesi tonde.
def mix(a,b):
return (a * b)/2
def foo(func,x,y):
return func(x,y)
print(foo(mix,2,3))
Eseguendo questo codice si ottiene
>>>
3.0