ПочатиПочніть безкоштовно

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

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

Ця вправа є частиною курсу

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

Переглянути курс

Інструкції до вправи

  • Додайте декоратор із модуля contextlib до функції timer(), щоб вона працювала як контекстний менеджер.
  • Передайте керування з функції 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)
Редагувати та запускати код