Uso dei decoratori
Lezione 5 di 12 del corso Decoratori in Python di Coddy.
In Python, un decoratore è una funzione che prende un'altra funzione come input ed estende il comportamento della funzione di input senza modificarne esplicitamente il codice. I decoratori sono un modo efficace per modificare o migliorare il comportamento delle funzioni in modo flessibile e riutilizzabile.
Ecco un esempio di una semplice funzione decoratore:
def my_decorator(func):
def wrapper():
print("Before the function is called.")
func()
print("After the function is called.")
return wrapperIn questo esempio, la funzione my_decorator prende un'altra funzione func come input e restituisce una nuova funzione chiamata wrapper.
La funzione wrapper aggiunge un comportamento prima e dopo la chiamata alla funzione func.
Sfida
FacileScrivi una funzione decoratrice chiamata debug che accetta una funzione func come input e restituisce una nuova funzione che stampa il nome di func e il valore restituito da func ogni volta che viene chiamata.
Per ottenere il nome di
func, usafunc.__name__.
Ecco un esempio di utilizzo del decoratore debug:
def hello():
return "Hello"
debug_hello = debug(hello)
debug_hello()In questo esempio, usiamo il decoratore debug per avvolgere la funzione hello e creare una nuova funzione chiamata debug_hello. Quando chiamiamo debug_hello(), il decoratore stamperà:
Calling hello
hello returned: HelloPuoi presumere che tutte le funzioni passate a
debugsiano funzioni senza argomenti.
Provalo tu
Tutte le lezioni di Decoratori in Python
Esercitati da solo: Compilatore Python online