Python: Интерактивные функции

Python: Функции 6 сообщений
Обновлено: 30 марта, 12:26
110
Студентов
48%
Завершения

src/solution.py

Это испытание имеет повышенную сложность. Вам предстоит реализовать два декоратора, образующих маленький DSL, позволяющий превращать обычные функции в интерактивные программы.

Декоратор asks() добавляет описание одного из аргументов преобразуемой функции. Для каждого аргумента нужен будет отдельный вызов asks(). Важный момент: порядок появления запросов во время диалога с пользователем должен соответствовать порядку расположения декораторов в файле (а не порядку их фактического применения) — смотрите пример ниже.

После того, как все аргументы преобразуемой функции будут описаны с помощью asks(), применяется декоратор interactive(). После его применения результирующая функция перестаёт принимать аргументы и возвращать результат (None в итоге возвращается, конечно), зато начинает общаться с пользователем.

Обе функции в модуле уже объявлены, но не реализованы. Вам нужно будет написать "тела" этих функций. Обе функции снабжены docstrings (в порядке исключения — на русском языке), которые поясняют назначение аргументов каждой функции.

@interactive('Calculator')
@asks('x', 'Enter first number: ')
@asks('y', 'Enter second number: ')
def calc(x, y):
    return int(x) + int(y)

calc()
Calculator
Enter first number: 42
Enter second number: 57
# 99

Для полного доступа к испытанию нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
900
упражнений
2000+
часов теории
3200
тестов