Что нужно сделать
Ваня что-то совсем заскучал на работе и решил побаловаться с кодом проекта. Он написал надоедливый декоратор, который при вызове декорируемой функции спрашивает у пользователя «Как дела?», вне зависимости от ответа отвечает что-то вроде «А у меня не очень!» и только потом запускает саму функцию. Правда, после такой выходки его чуть не уволили с работы.
Реализуйте такой же декоратор и проверьте его работу на нескольких функциях.
Пример кода:
@how_are_you
def test():
print('<Тут что-то происходит...>')
test()
Результат:
Как дела? Хорошо.
А у меня не очень! Ладно, держи свою функцию.
<Тут что-то происходит...>
Что оценивается
- Результат вычислений корректен.
- Формат вывода соответствует примеру.
- Переменные, функции и собственные методы классов имеют значащие имена (не
a
,b
,c
,d
). - Классы и методы/функции имеют прописанную документацию.
- Есть аннотация типов для методов/функций и их аргументов (кроме
args
иkwargs
). Если функция/метод ничего не возвращает, то используетсяNone
. - Во всех декораторах используется
functools.wraps
.
def how_are_you(func):
def inner(*args, **kwargs):
_ = input('Как дела? Ответ: ')
print('А у меня не очень...')
result = func(*args, **kwargs)
return result
return inner
@how_are_you
def test():
print('Тут что-то происходит...')
test()