向子类添加任意数量的参数?

时间:2016-08-22 05:43:27

标签: python class inheritance

class Restaurant():
    def __init__(self, restaurant_name, cuisine_type):
    """ initializing name and cuisine attributes"""
        self.name = restaurant_name
        self.c_type = cuisine_type
        self.number_served = 0







class IceCreamStand(Restaurant):
"""represents aspects of a type of restaurant specifically an  IceCreamStand """


    def __init__(self, restaurant_name,cuisine_type,flavors):
        super().__init__(restaurant_name, cuisine_type, 
        flavors)
        self.flavor = flavors


    def display_flavors(self):
        print (flavors)



##ICECREAM
dairy_queen = IceCreamStand('dairy queen' , 'ice cream','vanilla' ,'choclate' )
dairy_queen.display_flavors()       

在我的任务中,我正在尝试创建一个名为IceCreamStand的类,它继承自Restaraunt类。我还想添加一个属性来存储一个风格列表并调用此方法。这是我到目前为止所尝试的但是我一直收到一条错误消息,说 init 需要4个临时参数,但有5个被给出?

1 个答案:

答案 0 :(得分:1)

您可以在*之前添加flavors,以便将所有剩余的位置参数放入该列表中。

实际上,我建议您不要使用多个位置参数来进行调味。相反地​​传递list

def __init__(self, restaurant_name, cuisine_type, flavors):
    ...

dairy_queen = IceCreamStand('dairy queen' , 'ice cream', ['vanilla' , 'chocolate'])

如果您使用此模式,您可以稍后添加另一个带有默认值的参数,现有代码可以正常工作:

def __init__(self, restaurant_name, cuisine_type, flavors, organic=False):
    ...