Definire un decorator
Il tuo collega sta lavorando a un decorator che stampa un messaggio "prima" prima che la funzione decorata venga chiamata e un messaggio "dopo" dopo che viene chiamata. Ha qualche difficoltà a ricordare come dovrebbe funzionare il wrapping della funzione decorata. Dagli una mano completando il loro decorator print_before_and_after().
Questo esercizio fa parte del corso
Scrivere funzioni in Python
Istruzioni dell'esercizio
- Chiama la funzione che stai decorando e passale gli argomenti posizionali
*args. - Restituisci la nuova funzione decorata.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
def print_before_and_after(func):
def wrapper(*args):
print('Before {}'.format(func.__name__))
# Call the function being decorated with *args
____(*args)
print('After {}'.format(func.__name__))
# Return the nested function
return ____
@print_before_and_after
def multiply(a, b):
print(a * b)
multiply(5, 10)