|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这段餐厅点餐小程序我看了好久主函数都没看懂,学习进度卡在这了,有没有大佬解析一下,
class Meet:
nums = 0
class Egg(Meet):
name = "鸡蛋"
price = 1
class Beef(Meet):
name = "牛肉"
price = 25
class Mutoon(Meet):
name = "羊肉"
price = 30
class Vegetable:
nums = 0
class Onion(Vegetable):
name = "洋葱"
price = 2
class Tomato(Vegetable):
name = "番茄"
price = 2
class Potato(Vegetable):
name = "土豆"
price = 3
class Radish(Vegetable):
name = "萝卜"
price = 3
class Menu:
def order(self):
self.x = []
print("客官想要吃点什么?")
dishes = input("1.洋葱炒牛肉;2.洋葱炒羊肉;3.煎蛋;4.番茄炒蛋;5.土豆萝卜炖羊肉:")
dishes = dishes.split()
while dishes:
dish = dishes.pop(0)
if dish == '1':
onion = Onion()
onion.num = 1
beef = Beef()
beef.num = 1
self.x.extend([beef, onion])
if dish == '2':
onion = Onion()
onion.num = 1
mutoon = Mutoon()
mutoon.num = 1
self.x.extend([mutoon, onion])
if dish == '3':
egg = Egg()
egg.num = 2
self.x.append(egg)
if dish == '4':
tomato = Tomato()
tomato.num = 2
egg = Egg()
egg.num = 3
self.x.extend([tomato, egg])
if dish == '5':
potato = Potato()
potato.num = 2
radish = Radish()
radish.num = 1
mutoon = Mutoon()
mutoon.num = 2
self.x.extend([potato, radish, mutoon])
def pay(self):
total = 0
for each in self.x:
print(each.name, each.price, "*", each.num)
total += each.price * each.num
print(f"感谢惠顾,您一共消费了 {total} 元,欢迎下次光临~")
Menu()
这段代码是一个简单的餐厅点餐系统,首先定义了各种食材(Meat和Vegetable及其子类)以及菜单(Menu类),接着提供一个方法进行点餐(order方法)和计算支付金额(pay方法)。接下来,我简要解析下主要功能。
首先,定义了两个大类的食材,Meat(肉类)和Vegetable(蔬菜类)。Meat类下有三个子类:Egg(鸡蛋),Beef(牛肉),Mutoon(羊肉);Vegetable类下有四个子类:Onion(洋葱),Tomato(番茄),Potato(土豆),Radish(萝卜)。每个子类都有自己的名称和价格。
然后,定义了一个菜单(Menu)类,包含两个方法:
1、order方法:负责接收用户输入的菜品编号,然后根据菜品编号创建相应的食材对象,设置数量,并将这些食材对象存储在self.x列表中。
2、pay方法:负责遍历self.x列表,计算每种食材的总价,并输出总金额。
最后,代码中使用了Menu()创建了一个Menu类的实例,但没有调用任何方法。为了让程序正常运行,需要修改最后一行代码,将Menu()改为:
menu = Menu()
menu.order()
menu.pay()
这样,程序会创建一个Menu实例,调用order方法进行点餐,然后调用pay方法结算并输出总金额。
|
|