我无法访问某些由Python中的OOP函数格式化的数据:
class Menu:
"""Models the Menu with drinks."""
def __init__(self):
self.menu = [
MenuItem(name="latte", water=200, milk=150, coffee=24, cost=2.5),
MenuItem(name="espresso", water=50, milk=0, coffee=18, cost=1.5),
MenuItem(name="cappuccino", water=250, milk=50, coffee=24, cost=3),
]
1. from menu import Menu
2. from coffee_maker import CoffeeMaker
3. from money_machine import MoneyMachine
4.
5. print("HOT COFFEE!")
6. print("Here is the coffee menu!")
7. menu1 = Menu()
8. mycoffee = CoffeeMaker()
9. print("Here are the resources available to make coffee!")
10. mycoffee.report()
11. order = input("Choose the type of coffee you want: ")
12. menu1.find_drink(order)
13. mymoney = MoneyMachine()
14. mymoney.process_coins()
15. mymoney.make_payment(**menu[order][cost]**)
16. if mymoney.make_payment() == True:
17. if mycoffee.is_resource_sufficient(order) == True:
18. mycoffee.make_coffee()
第15行的粗体字让我很头疼,我不知道如何访问Menu类中的cost。
我试过了:mymoney.make_payment(menu[order][cost])
2条答案
按热度按时间lsmepo6l1#
我建议在www.example.com中使用dictionary object而不是list对象Menu.menu。
老实说,我不确定我是否理解了这个问题(也许可以重新表述你的问题,或者分享更多的代码),但是假设MenuItem也是一个类,那么下面的代码可以用来访问开销:
这样,您应该能够使用Menu.menu[order].cost访问成本,或者在您的情况下(如果我理解正确的话),使用menu1.menu[order].cost访问成本
希望对你有帮助,或者回答了你的问题。
k4emjkb12#
您可以尝试在类上编写一个新函数,以帮助获取成本信息。假设MenuItem类有一个名为“cost”的私有属性,并且Menu类可以访问它的属性
在其他脚本中: