问题解答:
在这段代码中,多次实例化一个类并使用相同的对象名是可以的,因为每次实例化都会创建一个新的对象,并将其赋值给对象名。虽然使用相同的对象名,但是它们指向的是不同的内存空间,所以不会互相干扰。
在这个例子中,使用相同的对象名egg是合法的,因为每次实例化Egg类都会创建一个新的egg对象。这些对象具有不同的属性和方法,尽管对象名相同,但它们在内存中是不同的实例。
如果你想让每个菜品都创建一个独立的对象,可以修改代码如下: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': egg1 = Egg() egg1.num = 2 self.x.append(egg1) if dish == '4': tomato = Tomato() tomato.num = 2 egg2 = Egg() egg2.num = 3 self.x.extend([tomato, egg2]) if dish == '5': potato = Potato() potato.num = 2 radish = Radish() radish.num = 1 mutoon = Mutoon() mutoon.num = 2 self.x.extend([potato, radish, mutoon]) print(self.x) 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} 元,欢迎下次光临~")
以上修改后的代码中,每个菜品都创建了一个独立的对象,对象名也相应地进行了修改,以确保每个对象都是唯一的。这样做可以保证每个对象都有自己独立的属性和方法。
如果回答对你有帮助,请给我一个最佳答案!
|