Le gestionnaire de contexte timer()
Un de vos collègues travaille sur un service web qui traite des photos Instagram. Les clients se plaignent que le service prend trop de temps pour déterminer si une image contient ou non un chat, et votre collègue vous a donc demandé de l'aide. Vous avez décidé de créer un gestionnaire de contexte utilisable pour mesurer le temps d'exécution des fonctions.
Cet exercice fait partie du cours
Écrire des fonctions en Python
Instructions
- Ajoutez un décorateur du module
contextlibà la fonctiontimer()afin qu'elle se comporte comme un gestionnaire de contexte. - Transférez le contrôle de la fonction
timer()vers le bloc de contexte.
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)