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