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

Декораторы · 3 из 22

Не меньше нуля

В окне №3 несколько функций считают остатки: марок на складе, конвертов, бланков. И у каждой иногда выходит минус — то продали больше, чем завезли по бумагам, то бланк списали дважды. Зинаида Петровна постановила: в бумагах остаток бывает нулевой, но не отрицательный. Чинить каждую функцию отдельно долго — нужна одна обёртка на все.

Что сделать

Напишите декоратор: обёрнутая функция считает как прежде, но вместо отрицательного числа отдаёт ноль.

Что приходит

  • func — функция, которая считает число; аргументы у неё любые

Что вернуть

Новую функцию: зовёт func с теми же аргументами и возвращает её ответ, а если он меньше нуля — 0.

Допишите функцию ne_menshe_nulya в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

Пример

Над функцией остатка ставят @ne_menshe_nulya. Было 10 марок, продали 3 — остаток 7, как и без декоратора. Было 3, продали 10 — вместо −7 выходит 0.

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

Обсуждение

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

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