Funzioni annidate
Lezione 2 di 12 del corso Decoratori in Python di Coddy.
Prima di addentrarci nei decoratori, dobbiamo comprendere alcuni concetti importanti relativi alle funzioni Python.
In Python, possiamo includere una funzione all'interno di un'altra, creando una cosiddetta funzione annidata.
Per esempio,
def outer_function():
print("This is the outer function.")
def inner_function():
print("This is the inner function.")
inner_function()
In questo esempio, outer_function contiene una funzione annidata chiamata inner_function.
Quando viene chiamata outer_function, prima stampa "This is the outer function." e poi chiama inner_function. inner_function stamperà quindi "This is the inner function."
Nota che inner_function può essere chiamata solo dall'interno di outer_function.
Se provi a chiamare inner_function al di fuori di outer_function, riceverai un NameError che indica che inner_function non è definita.
Sfida
FacileScrivi una funzione chiamata greeting_generator che accetta un nome come argomento e restituisce un messaggio di saluto che include il nome.
Il messaggio di saluto deve essere generato da una funzione annidata chiamata get_greeting, che accetta il nome come argomento e restituisce una stringa che dice "Hello, [name]!".
Ecco un esempio di come dovrebbe funzionare la funzione:
>>> greeting = greeting_generator("Alice")
>>> greeting
"Hello, Alice!"
>>> greeting = greeting_generator("Bob")
>>> greeting
"Hello, Bob!"
Vincoli
- Devi usare una funzione annidata chiamata
get_greetingper generare il messaggio di saluto. - Il messaggio di saluto deve includere il nome passato a
greeting_generator.
Provalo tu
Tutte le lezioni di Decoratori in Python
1Introduzione
Che cos'è un decoratore?Funzioni annidateFunzioni come argomentiRestituire una funzioneEsercitati da solo: Compilatore Python online