CommencerCommencer gratuitement

Compteur

Vous travaillez sur une nouvelle application web et vous êtes curieux de savoir combien de fois chacune des fonctions qu'elle contient est appelée. Vous décidez donc d'écrire un décorateur qui ajoute un compteur à chaque fonction que vous décorez. Vous pourrez utiliser ces informations à l'avenir pour déterminer s'il existe des sections de code que vous pourriez supprimer parce qu'elles ne sont plus utilisées par l'application.

Cet exercice fait partie du cours

Écrire des fonctions en Python

Afficher le cours

Instructions

  • Appelez la fonction décorée et renvoyez le résultat.
  • Renvoyez la nouvelle fonction décorée.
  • Décorez foo() avec le décorateur counter().

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

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))
Modifier et exécuter le code