Что нужно сделать
В программировании иногда возникает ситуация, когда работу функции нужно замедлить. Типичный пример — функция, которая постоянно проверяет, изменились ли данные на веб-странице или её код.
Реализуйте декоратор, который перед выполнением декорируемой функции ждёт несколько секунд.
Что оценивается
- Результат вычислений корректен.
- Сообщения о процессе получения результата осмыслены и понятны для пользователя.
- Переменные, функции и собственные методы классов имеют значащие имена (не
a
,b
,c
,d
). - Классы и методы/функции имеют прописанную документацию.
- Есть аннотация типов для методов/функций и их аргументов (кроме
args
иkwargs
). Если функция/метод ничего не возвращает, то используетсяNone
. - Во всех декораторах используется
functools.wraps
.
import time
def time_delay(func):
"""Декоратор создает задержку времени запуска функции."""
def inner(seconds: int = 3):
for _ in range(seconds * 3):
print('▓▓', end='')
time.sleep(0.33)
print('100%\n')
result = func()
return result
return inner
@time_delay
def testfunc():
print('Функция запущена!')
testfunc()