Войти Создать аккаунт

Декораторы · 12 из 15

Кисть по глубине

К Новому году отделение печатает открытки с цветущим деревом. Дерево рисует рекурсивная функция vetka: ствол, на нём две ветки поменьше, на каждой — ещё две. Рисует она одним цветом, а Зинаида Петровна хочет, чтобы ствол был коричневым, ветки — зелёными, а самые тонкие — розовыми, как цветы. Функцию писал сменщик, и трогать её она запретила: «Обёрните — вы же это умеете».

Что сделать

Напишите декоратор с доводом: обёрнутая рисующая функция красит каждый свой вызов в цвет по глубине рекурсии.

Что приходит

  • cveta — список цветов: первый — для самого внешнего вызова, второй — для вызова изнутри него, и так далее

Что вернуть

Декоратор: обёрнутая функция перед рисованием ставит черепашке цвет своей глубины и отдаёт ответ исходной функции.

Допишите функцию po_glubine в редакторе справа. Рисуйте черепашкой t, как turtle дома, — проверка сравнивает нарисованное; возвращать ничего не нужно.

с графикой когда тесты пройдут, ответ вашей функции нарисуется · все задачи с графикой

Пример

Ветка длиной 80 с цветами ["sienna", "green", "gold"]. Внешний вызов рисует ствол коричневым, два вызова изнутри него — ветки зелёными, их вызовы — золотыми. Точка на кончике каждой ветки ставится после её собственных веточек и всё равно красится цветом этой ветки.

Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.