ООП · 3 из 23
Абонемент на поездки
Кроме почасовой оплаты, прокат продаёт абонементы: десять поездок за раз. Каждая поездка списывает одну; кончились — велосипед не выдаётся, пока абонемент не пополнят.
Что сделать
Опишите абонемент: он помнит, сколько поездок осталось, списывает по одной и пополняется.
Что приходит
poezdok— сколько поездок в абонементе при покупке
Что должен уметь
Поле ostalos; метод poehat() — True и одна поездка списана, если было что списать, иначе False; метод popolnit(skolko).
Допишите класс Abonement в редакторе справа.
Проверка создаёт его объекты и зовёт методы — то, что напечатано,
на проверку не влияет.
Абонемент на 2 поездки: поехали трижды — ответы True, True, False, осталось 0.
a = Abonement(2) otvety = [a.poehat(), a.poehat(), a.poehat()]
(otvety, a.ostalos)
([True, True, False], 0)
Abonement(poezdok) — новый абонемент, ostalos равно poezdok.
poehat() — если поездки остались, списывает одну и отвечает True; если нет — ничего не меняет и отвечает False. Меньше нуля поездок не бывает.
popolnit(skolko) — прибавляет поездки. Пополнить на ноль или на отрицательное число нельзя: ValueError, и ostalos не меняется.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.