一二能能 2022-05-10 19:45 采纳率: 100%
浏览 136
已结题

Python如何在子类中添加一个存储列表的属性?

问题遇到的现象和发生背景

Python课后习题要求“添加一个名为flavors的属性,用于存储一个由各种口味冰淇淋组成的列表”。

问题相关代码,请勿粘贴截图
class Restaurant():
    """一次模拟餐馆的简单尝试"""
    
    def __init__(self,restaurant_name,cuisine_type):
        """初始化属性restaurant_name和cuisine_type"""
        self.restaurant_name = restaurant_name
        self.cuisine_type = cuisine_type
        self.number_severed = 0
            
    def describe_restaurant(self):
        """描述餐馆信息"""
        print("\nThe restaurant's name is "+self.restaurant_name.title()+".")
        print("The cuisine's type of the restaurant is "+self.cuisine_type.title()+".")
        
    def open_restaurant(self):
        """指出餐馆正在营业"""
        print("\nThe restaurant is opening!")
        
    def read_number_severed(self):
        """打印餐馆就餐人数"""
        print("\nThe number of the severed is "+str(self.number_severed)+".")
        
    def set_number_served(self,number):
        """设置就餐人数"""
        self.number = number
        
    def increment_number_served(self,add):
        """设置就餐人数递增量"""
        self.add = add
        

#编写一个名为IceCreamStand的类,继承Restaurant()类
#添加一个名为flavors的属性,用于存储一个由各种口味的冰淇淋组成的列表
#编写一个显示这些冰淇淋的方法
class IceCreamStand(Restaurant):
    """冰淇淋小店的独特之处"""
    
    def __init__(self,restaurant_name,cuisine_type,flavors):
        """
        初始化父类的属性,再初始化冰淇淋小店特有的属性
        """
        super().__init__(restaurant_name,cuisine_type)
        self.flavors = flavors
        
    def read_flavors(self):
        """显示冰淇淋口味"""
        print("The flavors is "+self.flavors+".")

        
#创建一个IceCreamStand实例,并调用这个方法     
icecreamstand = IceCreamStand('icecream','sweet','chocolate')   
icecreamstand.read_flavors()


运行结果及报错内容

运行没有报错

我想要达到的结果

flavors可以存储列表

  • 写回答

1条回答 默认 最新

  • 请叫我问哥 Python领域新星创作者 2022-05-11 03:57
    关注

    参数前面加个星号*,传进去的就变成元组了,和列表差不多,不过关键是看你想怎么调用它。

    class IceCreamStand(Restaurant):
        """冰淇淋小店的独特之处"""
        
        def __init__(self,restaurant_name,cuisine_type,*flavors):
            """
            初始化父类的属性,再初始化冰淇淋小店特有的属性
            """
            super().__init__(restaurant_name,cuisine_type)
            self.flavors = flavors
            
        def read_flavors(self):
            """显示冰淇淋口味"""
            for i in self.flavors:
                print("There are flavors of "+i+".")
    
    icecreamstand = IceCreamStand('icecream','sweet','chocolate','stawberry','milk','vanilla')   
    icecreamstand.read_flavors()
    

    输出为:

    There are flavors of chocolate.
    There are flavors of stawberry.
    There are flavors of milk.
    There are flavors of vanilla.
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 5月19日
  • 已采纳回答 5月11日
  • 创建了问题 5月10日

悬赏问题

  • ¥30 雷达辐射源信号参考模型
  • ¥15 html+css+js如何实现这样子的效果?
  • ¥15 STM32单片机自主设计
  • ¥15 如何在node.js中或者java中给wav格式的音频编码成sil格式呢
  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM