CommencezCommencez gratuitement

Le gestionnaire de contexte timer()

Une collègue travaille sur un service Web qui traite des photos Instagram. Les clients se plaignent que le service prend trop de temps à déterminer si une image contient un chat ou non, et votre collègue vous demande de l'aide. Vous décidez d'écrire un gestionnaire de contexte qu'elle pourra utiliser pour chronométrer l'exécution de ses fonctions.

Cette activité fait partie du cours

Écrire des fonctions en Python

Voir le cours

Instructions de l’exercice

  • Ajoutez un décorateur du module contextlib à la fonction timer() pour qu'elle se comporte comme un gestionnaire de contexte.
  • Transférez le contrôle du flux de la fonction timer() au bloc de contexte.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# Add a decorator that will make timer() a context manager
@contextlib.____
def timer():
  """Time the execution of a context block.

  Yields:
    None
  """
  start = time.time()
  # Send control back to the context block
  ____
  end = time.time()
  print('Elapsed: {:.2f}s'.format(end - start))

with timer():
  print('This should take approximately 0.25 seconds')
  time.sleep(0.25)
Modifier et exécuter le code