IniziaInizia gratis

Contatore

Stai lavorando a una nuova web app e sei curioso di sapere quante volte vengono chiamate le varie funzioni. Decidi quindi di scrivere un decorator che aggiunga un contatore a ogni funzione che decori. In futuro potresti usare queste informazioni per capire se ci sono parti di codice che puoi rimuovere perché non sono più utilizzate dall'app.

Questo esercizio fa parte del corso

Scrivere funzioni in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Chiama la funzione che stai decorando e restituiscine il risultato.
  • Restituisci la nuova funzione decorata.
  • Decora foo() con il decorator counter().

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

def counter(func):
  def wrapper(*args, **kwargs):
    wrapper.count += 1
    # Call the function being decorated and return the result
    return ____
  # Set count to 0 to initialize call count for each new decorated function
  wrapper.count = 0
  # Return the new decorated function
  ____

# Decorate foo() with the counter() decorator
____
def foo():
  print('calling foo()')
  
foo()
foo()

print('foo() was called {} times.'.format(foo.count))
Modifica ed esegui il codice