-
Notifications
You must be signed in to change notification settings - Fork 102
/
Copy pathmain.py
61 lines (54 loc) · 1.75 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
class AbstractPizza:
def description(self) ->str:
pass
def cost(self) ->float:
pass
class AbstractPizzaIngredient(AbstractPizza):
def __init__(self, origin: AbstractPizza) ->None:
self.__origin = origin
def ingredientDescription(self) ->str:
pass
def ingredientCost(self) ->float:
pass
def description(self) ->str:
return self.__origin.description() + self.ingredientDescription()
def cost(self) ->float:
return self.__origin.cost() + self.ingredientCost()
# ========================================
class SmallPizza(AbstractPizza):
def description(self) ->str:
return '[small pizza]'
def cost(self) ->float:
return 10
class MiddlePizza(AbstractPizza):
def description(self) ->str:
return '[middle pizza]'
def cost(self) ->float:
return 13
class BigPizza(AbstractPizza):
def description(self) ->str:
return '[big pizza]'
def cost(self) ->float:
return 15
# ========================================
class Pepper(AbstractPizzaIngredient):
def ingredientDescription(self) ->str:
return '[pepper]'
def ingredientCost(self) ->float:
return 3
class Chicken(AbstractPizzaIngredient):
def ingredientDescription(self) ->str:
return '[chicken]'
def ingredientCost(self) ->float:
return 5
class Cheese(AbstractPizzaIngredient):
def ingredientDescription(self) ->str:
return '[cheese]'
def ingredientCost(self) ->float:
return 2
# ========================================
def print_pizza_to_ui(pizza: AbstractPizza) ->None:
print(f'Name: {pizza.description()}|Cost: {pizza.cost()}')
# ========================================
if __name__ == '__main__':
pass