Контекстний менеджер 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)