Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите пожалуйста исправить ошибку в задании Питона!

mr alastor Ученик (77), на голосовании 1 месяц назад
МОЙ КОД с замечанием учителя:

import functools
from typing import Callable, Any

def how_are_you(func: Callable):
@functools.wraps(func)
def wrap(*args, **kwargs) -> Any:
inp = input('Как дела? ')
print('А у меня не очень! Ладно, держи свою функцию.')
func(*args, **kwargs)# TODO тут надо же вернуть результат, то есть добавить return и в других заданиях тоже
return wrap

@how_are_you
def test(a: int, b: int) -> None:
print('<Тут что-то происходит...>')
print(a + b)

test(10, 45)

Замечание учителя:




Задание само:

Задача 1. Как дела?
Что нужно сделать
Вася совсем заскучал на работе и решил побаловаться с кодом проекта. Он написал надоедливый декоратор, который при вызове декорируемой функции спрашивает у пользователя «Как дела?», вне зависимости от ответа пишет что-то вроде «А у меня не очень!» и только потом запускает саму функцию. Правда, после такой выходки Васю чуть не уволили с работы.

Реализуйте такой же декоратор и проверьте его работу на нескольких функциях.

Пример кода:

@how_are_you
def test():
print('<Тут что-то происходит...>')


test()
Результат:
Как дела? Хорошо.
А у меня не очень! Ладно, держи свою функцию.
<Тут что-то происходит...>

Что оценивается
Результат вычислений корректен.
Формат вывода соответствует примеру.
Переменные, функции и собственные методы классов имеют значащие имена (не a, b, c, d).
Классы и методы/функции имеют прописанную документацию.
Есть аннотация типов для методов/функций и их аргументов (кроме args и kwargs). Если функция/метод ничего не возвращает, то используется None.
Во всех декораторах используется functools.wraps().

Можете исправить код пожалуйста? Очень не хватает времени доработать!
Голосование за лучший ответ
mrypdm Гуру (4617) 2 месяца назад
добавь return перед func(*args, **kwargs)
Похожие вопросы