Menu
Coddy logo textTech

Sintassi di Python

Lezione 6 di 12 del corso Decoratori in Python di Coddy.

Nella lezione precedente abbiamo visto come creare decoratori di funzioni; tuttavia, Python offre un modo molto più elegante per ottenere questa funzionalità usando il simbolo @.

Per esempio,

def my_decorator(func):
    def wrapper():
        print("Before function is called.")
        func()
        print("After function is called.")
    return wrapper

@my_decorator
def my_function():
	print("Inside my_function.")

Quando eseguiamo my_function(), vedremo un output simile a questo:

Before function is called.
Inside my_function.
After function is called.

Questo mostra che la funzione decoratrice my_decorator è stata in grado di modificare il comportamento di my_function aggiungendo del codice prima e dopo la sua chiamata.

challenge icon

Sfida

Facile

Ti viene fornito il codice di una funzione add.

Il tuo compito è scrivere un decoratore di funzione chiamato debug, come nell’ultima lezione, ma con alcune aggiunte:

  • Applica il decoratore di funzione debug a add usando il simbolo @.
  • La funzione di debug dovrebbe supportare gli argomenti della funzione.

Per supportare le funzioni con argomenti in un decoratore,

def my_decorator(func):
    def wrapper(a, b):
        print("Before function is called.")
        func(a, b)
        print("After function is called.")
    return wrapper

Esempio:

Per una chiamata alla funzione add(2, 3), dovrebbe essere stampato,

Calling add with arguments (2, 3)
add returned: 5

Provalo tu

# Scrivi il codice qui


def add(a, b):
    return a + b

Tutte le lezioni di Decoratori in Python

Esercitati da solo: Compilatore Python online