CommencerCommencer gratuitement

Le gestionnaire de contexte timer()

Un de vos collègues travaille sur un service web qui traite les photos Instagram. Les clients se plaignent que le service met trop de temps à déterminer si une image contient ou non un chat. Votre collègue est donc venu vous demander de l'aide. Vous décidez d'écrire un gestionnaire de contexte qu'ils pourront utiliser pour chronométrer le temps d'exécution de leurs fonctions.

Cet exercice fait partie du cours

Écrire des fonctions en Python

Afficher le cours

Instructions

  • Ajoutez un décorateur du module contextlib à la fonction timer() pour qu'elle agisse comme un gestionnaire de contexte.
  • Envoyer le contrôle de la fonction timer() au bloc contextuel.

Exercice interactif pratique

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

# 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