Top.Mail.Ru
Ответы
Аватар пользователя
10мес
Аватар пользователя
Аватар пользователя
Программирование
+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().

Можете исправить код пожалуйста? Очень не хватает времени доработать!

По дате
По рейтингу
Аватар пользователя
Гуру
10мес

добавь return перед func(*args, **kwargs)