← К задачамОткрыть курс →
Паттерн «Стратегия»: способы скидки
Реализуйте паттерн Стратегия для расчёта цены со скидкой.
Сделайте три класса-стратегии с методом apply(price):
NoDiscount— возвращает цену без изменений;PercentDiscount(pct)— снимаетpctпроцентов;FixedDiscount(amount)— вычитаетamount, но не ниже 0.
И класс Cart: по умолчанию стратегия NoDiscount, метод set_strategy(strategy) подменяет её, а total(price) возвращает итог.
📖 Теория по теме:Strategy
Курс по теме
Пройдите курс «Python с нуля» — по шагам, с проверкой
8 уроков · ~14 ч · теория, упражнения и экзамен с бейджем
class NoDiscount:
def apply(self, price):
...
class PercentDiscount:
def __init__(self, pct):
...
def apply(self, price):
...
class FixedDiscount:
def __init__(self, amount):
...
def apply(self, price):
...
class Cart:
def __init__(self):
...
def set_strategy(self, strategy):
...
def total(self, price):
...
Здесь появится результат. Напиши решение слева и нажми «Проверить код».
Для запуска тестов необходима авторизация.