O gerenciador de contexto timer()
Um colega seu está trabalhando em um serviço da Web que processa fotos do Instagram. Os clientes estão reclamando que o serviço leva muito tempo para identificar se uma imagem tem ou não um gato, por isso seu colega pediu ajuda a você. Você decide escrever um gerenciador de contexto que eles possam usar para cronometrar o tempo de execução das funções.
Este exercício faz parte do curso
Como escrever funções em Python
Instruções de exercício
- Adicione um decorador do módulo
contextlib
à funçãotimer()
que fará com que ela atue como um gerenciador de contexto. - Envie o controle da função
timer()
para o bloco de contexto.
Exercício interativo prático
Experimente este exercício preenchendo este código de exemplo.
# 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)