|
@@ -0,0 +1,108 @@
|
|
|
+class BasePizza:
|
|
|
+ BASE_PIZZA_PRICE = 15
|
|
|
+
|
|
|
+ def __init__(self, name, price):
|
|
|
+ self.name = name
|
|
|
+ self.price = price
|
|
|
+ self.toppings = ['cheese']
|
|
|
+
|
|
|
+ def __str__(self):
|
|
|
+ return f"{self.name} with {self.toppings}, ${self.price:.2f}"
|
|
|
+
|
|
|
+
|
|
|
+class PepperoniMixin:
|
|
|
+ def add_pepperoni(self):
|
|
|
+ print("Adding pepperoni!")
|
|
|
+ self.price += 5
|
|
|
+ self.toppings += ['pepperoni']
|
|
|
+
|
|
|
+
|
|
|
+class MushroomMixin:
|
|
|
+ def add_mushrooms(self):
|
|
|
+ print("Adding mushrooms!")
|
|
|
+ self.price += 3
|
|
|
+ self.toppings += ['mushrooms']
|
|
|
+
|
|
|
+
|
|
|
+class OnionMixin:
|
|
|
+ def add_onion(self):
|
|
|
+ print("Adding onion!")
|
|
|
+ self.price += 2
|
|
|
+ self.toppings += ['onion']
|
|
|
+
|
|
|
+
|
|
|
+class BaconMixin:
|
|
|
+ def add_bacon(self):
|
|
|
+ print("Adding bacon!")
|
|
|
+ self.price += 6
|
|
|
+ self.toppings += ['bacon']
|
|
|
+
|
|
|
+
|
|
|
+class OlivesMixin:
|
|
|
+ def add_olives(self):
|
|
|
+ print("Adding olives!")
|
|
|
+ self.price += 1
|
|
|
+ self.toppings += ['olives']
|
|
|
+
|
|
|
+class HamMixin:
|
|
|
+ def add_ham(self):
|
|
|
+ print("Adding ham!")
|
|
|
+ self.price += 7
|
|
|
+ self.toppings += ['ham']
|
|
|
+
|
|
|
+class PepperMixin:
|
|
|
+ def add_pepper(self):
|
|
|
+ print("Adding pepper!")
|
|
|
+ self.price += 3
|
|
|
+ self.toppings += ['pepper']
|
|
|
+
|
|
|
+class ChickenMixin:
|
|
|
+ def add_chicken(self):
|
|
|
+ print("Adding chicken!")
|
|
|
+ self.price += 5
|
|
|
+ self.toppings += ['chicken']
|
|
|
+
|
|
|
+class OlivesPizza(BasePizza, OlivesMixin):
|
|
|
+
|
|
|
+ def __init__(self):
|
|
|
+ super().__init__('Море оливок', BasePizza.BASE_PIZZA_PRICE)
|
|
|
+ self.add_olives()
|
|
|
+
|
|
|
+
|
|
|
+class PepperoniPizza(BasePizza, PepperoniMixin):
|
|
|
+
|
|
|
+ def __init__(self):
|
|
|
+ super().__init__('Колбасятина', BasePizza.BASE_PIZZA_PRICE)
|
|
|
+ self.add_pepperoni()
|
|
|
+
|
|
|
+
|
|
|
+class MushroomOnionBaconPizza(BasePizza, MushroomMixin, OnionMixin, BaconMixin):
|
|
|
+
|
|
|
+ def __init__(self):
|
|
|
+ super().__init__('Грибной пяточок с луком', BasePizza.BASE_PIZZA_PRICE)
|
|
|
+ self.add_mushrooms()
|
|
|
+ self.add_onion()
|
|
|
+ self.add_bacon()
|
|
|
+
|
|
|
+class CountryPizza(BasePizza, HamMixin, PepperMixin, OlivesMixin, PepperoniMixin, MushroomMixin, ChickenMixin):
|
|
|
+
|
|
|
+ def __init__(self):
|
|
|
+ super().__init__('Деревенская пицца', BasePizza.BASE_PIZZA_PRICE)
|
|
|
+ self.add_ham()
|
|
|
+ self.add_pepper()
|
|
|
+ self.add_olives()
|
|
|
+ self.add_pepperoni()
|
|
|
+ self.add_mushrooms()
|
|
|
+ self.add_chicken()
|
|
|
+
|
|
|
+
|
|
|
+# --------------------------------------------------
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+def main():
|
|
|
+ pass
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ main()
|