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