НачатьНачать бесплатно

Контекстный менеджер timer()

Ваш коллега разрабатывает веб-сервис для обработки фотографий из Instagram. Пользователи жалуются, что сервис слишком долго определяет, есть ли на изображении кошка. Коллега обращается к вам за помощью. Вы решаете написать контекстный менеджер, с помощью которого можно будет замерять время выполнения функций.

Это упражнение является частью курса

Написание функций на Python

Посмотреть курс

Инструкции к упражнению

  • Добавьте к функции timer() декоратор из модуля contextlib, чтобы она работала как контекстный менеджер.
  • Передайте управление из функции timer() в блок контекста.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# 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)
Редактировать и запускать код