El gestor de contexto timer()
Un colega tuyo está trabajando en un servicio web que procesa fotos de Instagram. Los clientes se quejan de que el servicio tarda demasiado en identificar si una imagen contiene o no un gato, así que tu colega ha acudido a ti en busca de ayuda. Decides escribir un gestor de contexto que puedan utilizar para cronometrar el tiempo que tardan en ejecutarse sus funciones.
Este ejercicio forma parte del curso
Escribir funciones en Python
Instrucciones de ejercicio
- Añade un decorador del módulo
contextlib
a la funcióntimer()
que hará que actúe como un gestor de contexto. - Envía el control de la función
timer()
al bloque de contexto.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este código de muestra.
# 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)