CommencerCommencer gratuitement

Counter

Vous travaillez sur une nouvelle application web et vous souhaitez connaître le nombre d'appels de chacune de ses fonctions. Vous décidez donc de créer un décorateur qui ajoute un compteur à chaque fonction que vous décorez. Vous pourriez utiliser ces informations à l'avenir pour déterminer s'il existe des sections de code que vous pourriez supprimer, car 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 en cours de décoration et renvoyez le résultat.
  • Renvoyez la nouvelle fonction décorée.
  • Décorez foo() à l'aide du 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