Menu
Coddy logo textTech

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 wrapper

In 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.

challenge icon

Sfida

Facile

Scrivi 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, usa func.__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: Hello

Puoi presumere che tutte le funzioni passate a debug siano funzioni senza argomenti.

Provalo tu

Tutte le lezioni di Decoratori in Python

Esercitati da solo: Compilatore Python online