ComeçarComece gratuitamente

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

Ver Curso

Instruções de exercício

  • Adicione um decorador do módulo contextlib à função timer() 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)
Editar e executar código