Декораторы · 1 из 14
Штамп на квитанции
Квитанции в окне №3 печатают несколько разных кусков программы, и снизу у каждой должна стоять строка отделения. Дописывать её в каждый кусок Марина отказалась: забудешь в одном — и квитанция без штампа.
Что сделать
Поставьте штамп отделения под каждой квитанцией — одним декоратором на все куски программы.
Что приходит
rabota— функция без аргументов, возвращает текст квитанции
Что вернуть
Новую функцию: зовёт rabota и отдаёт её текст со строкой Окно №3 снизу, через перевод строки; сама rabota не меняется.
Допишите функцию so_shtampom в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
def kvitanciya():
return "Посылка 3 кг, 350 ₽"
pechat = so_shtampom(kvitanciya)
pechat()
'Посылка 3 кг, 350 ₽\nОкно №3'
Функция принимает другую функцию. Та вызывается без аргументов и возвращает строку. Возвращает новую функцию: она вызывает исходную и возвращает её строку, к которой снизу приписана строка «Окно №3». Между текстом и штампом — перевод строки. Исходная функция при этом остаётся какой была.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.