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

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日

悬赏问题

  • ¥15 MATLAB怎么通过柱坐标变换画开口是圆形的旋转抛物面?
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥30 用arduino开发esp32控制ps2手柄一直报错
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题