类属性可以是数组吗

2024-03-28 17:34:00 发布

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

我是OOP和python的新手,所以如果这是一个简单的问题,请耐心听我说。如果我创建一个类,它有属性“a”、“b”和“c”,那么这些属性是否可能是一个数组,这样属性a[2]就有了意义?你知道吗

我搜索到的所有答案似乎都是错误的!所以,我用以下几句话把它说得更清楚,希望它能帮助我澄清我的问题:

我的意思是,例如,下面几行中的部分:breakfast=['menuitem2','menuitem3']

def main():
    menuitem1 = MenuItem()
    menuitem2 = MenuItem(title="Cocktail Bun", cost="8.0",long_desc="Cocktail Sweat Bun", short_desc="CB",item_type="bread")
    menuitem3 = MenuItem(title="Mexican Bun", cost="7.0",long_desc="Maxican Sweat Bun", short_desc="MB",item_type="dessert")
    menu1 = Menu()
    menu2 = Menu(breakfast=['menuitem2','menuitem3'],lunch=menuitem3,dinner=menuitem2)
    menu3 = Menu(breakfast=menuitem3,lunch=menuitem2,dinner=menuitem3)
    menus = [menu2, menu3]

我怎样才能让它工作?非常感谢你的帮助!你知道吗


Tags: 属性titleitemdesclongmenushortcost
1条回答
网友
1楼 · 发布于 2024-03-28 17:34:00

据我所知,我认为这将实现你的目标。你知道吗

我对你的定义做了两个改变

  • 我删除了早餐列表中的引号以使用已定义的对象
  • 我使用了所有菜单属性的列表,因为我假设所有菜单属性都有多个值。你知道吗

有一点需要注意,menu1和menuitem1从未使用过。我不确定这是不是有意的。你知道吗

代码:

class MenuItem:
    def __init__(self, title=None, cost=None, long_desc=None, short_desc=None, item_type=None):
        self.title = title
        self.cost = cost
        self.long_desc = long_desc
        self.short_desc = short_desc
        self.item_type = item_type


class Menu:
    def __init__(self, breakfast=None, lunch=None, dinner=None):
        self.breakfast = breakfast
        self.lunch = lunch
        self.dinner = dinner


def main():
    menuitem1 = MenuItem()
    menuitem2 = MenuItem(title="Cocktail Bun", cost="8.0",long_desc="Cocktail Sweat Bun", short_desc="CB",item_type="bread")
    menuitem3 = MenuItem(title="Mexican Bun", cost="7.0",long_desc="Maxican Sweat Bun", short_desc="MB",item_type="dessert")
    menu1 = Menu()
    menu2 = Menu(breakfast=[menuitem2,menuitem3],lunch=[menuitem3],dinner=[menuitem2])
    menu3 = Menu(breakfast=[menuitem3],lunch=[menuitem2],dinner=[menuitem3])
    menus = [menu2, menu3]

    print(menus[0].breakfast[0].title)
    print(menus[1].breakfast[0].title)

    print(menus[1].lunch[0].short_desc)

main()

相关问题 更多 >