IniziaInizia gratis

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

Visualizza il corso

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)
Modifica ed esegui il codice