在另一个Python文件中访问类的值

2024-10-03 02:34:58 发布

您现在位置:Python中文网/ 问答频道 /正文

# MenuItem.py
class MenuItem:
    def __init__(self, name=None, types=None, price=None, description=None):
        self._name = name
        self._types = types
        self._price = price
        self._description = description

# Diner.py
class Diner(object):
    STATUS = ["seated", "ordering", "eating", "paying", "leaving"]
    def __init__(self, name):
        self.__name = name
        self.__order = []
        self.__status = self.STATUS[0]
    def __str__(self):
        return ('Diner {} is currently {}'.format(self.__name, self.__status))
def calculateMealCost(self):
        for value, key in enumerate(self.__order):
            return MenuItem[value].price

我有两个python文件MenuItems.py和Diner.py。我希望calculateMealCost()方法返回特定用餐者的总用餐成本,但在执行此操作时

def calculateMealCost(self):
        for value, key in enumerate(self.__order):
            return MenuItem[value].price

我收到以下错误消息:

TypeError: 'type' object is not subscriptable

请问,我怎样才能解决这个问题


Tags: namepyselfnonereturnvaluedeforder
1条回答
网友
1楼 · 发布于 2024-10-03 02:34:58

如果这两个类位于不同的文件中,假设它们位于同一目录中,则缺少import语句:

from MenuItem import MenuItem

现在,为了访问您想要访问的price instance属性,您需要配置一个MenuItem类的实例:

chocolate_pie = MenuItem(price=3)

只有那时你才能问巧克力派的价格:

print(chocolate_pie.price)

换句话说,如果我正确地理解了您的代码,您需要首先将菜单上的所有项目定义为类MenuItem的实例,然后您将能够访问菜单上每个项目的price属性,将价格相加以获得最终的用餐成本

相关问题 更多 >