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
Instructions
- Ajoutez un décorateur du module
contextlib
à la fonctiontimer()
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)