类的继承如何增加接收的实参数量
我需要用self.flavors这个变量存储输入的甜品菜单,但是Icecreamstand这个类却只能接收3个实参。有大佬知道怎么解决吗 参数加上 * 号 可以一次性传入未知个数的参数数量 Twilight6 发表于 2020-5-26 15:11参数加上 * 号 可以一次性传入未知个数的参数数量
我已经的super().__init__后面加上*了,但是还是报错 一定学好python 发表于 2020-5-26 15:16
我已经的super().__init__后面加上*了,但是还是报错
代码发上来吧 我帮你改改~ 一定学好python 发表于 2020-5-26 15:16
我已经的super().__init__后面加上*了,但是还是报错
把*a去掉,我不知道你想写什么 永恒的蓝色梦想 发表于 2020-5-26 15:18
把*a去掉,我不知道你想写什么
额,我想在Icecreamstand类的增加一个属性(self.flavors = a),用来储存('草莓味','西瓜味','橘子味','桃子味')这个菜单的元组,再用def flavor(self):这个方法将菜单打印出来 一定学好python 发表于 2020-5-26 15:26
额,我想在Icecreamstand类的增加一个属性(self.flavors = a),用来储存('草莓味','西瓜味','橘子味',' ...
class Restaurant():
def __init__(self,restaurant_name,cuisine_type,*a):
self.name = restaurant_name
self.type = cuisine_type
self.number_served = 0
def describe_restaurant(self):
print('餐厅的名字是:'+self.name)
print('餐厅的类型是:'+self.type)
def open_restaurant(self):
print('餐厅正在营业')
def set_name_served(self,renshu):
self.number_served = self.number_served + renshu
def number(self):
if self.number_served == 0:
print('只有'+str(self.number_served)+'人在'+self.name+'就餐!')
else:
print('已经有'+str(self.number_served)+'人在'+self.name+'就餐了!')
class Icecreamstand(Restaurant):
def __init__(self,restaurant_name,cuisine_type,*a):
super().__init__(restaurant_name,cuisine_type,*a)
self.flavors = str(a)
def flavor(self):
return self.name+'的冰淇淋种类有:'+str(self.flavors)
d = Restaurant('夜半食堂','中式餐饮')
d.describe_restaurant()
c = Icecreamstand('冰淇淋小店','甜品店','草莓味','西瓜味','橘子味','桃子味')
print(c.flavor())
c.describe_restaurant() 一定学好python 发表于 2020-5-26 15:26
额,我想在Icecreamstand类的增加一个属性(self.flavors = a),用来储存('草莓味','西瓜味','橘子味',' ...
如果帮助到你就给个最佳吧 {:10_287:} Twilight6 发表于 2020-5-26 15:18
代码发上来吧 我帮你改改~
class Restaurant():
def __init__(self,restaurant_name,cuisine_type,*a): #不想在父类加*a,想直接在子类增加。有没有办法
self.name = restaurant_name
self.type = cuisine_type
self.number_served = 0
def describe_restaurant(self):
print('餐厅的名字是:' + self.name)
print('餐厅的类型是:' + self.type)
def open_restaurant(self):
print('餐厅正在营业')
def set_number_served(self,renshu):
self.number_served = renshu
def increment_number_served(self,renshu):
self.number_served = self.number_served + renshu
def number(self):
if self.number_served == 0:
print('只有' + str(self.number_served) +'人在' + self.name + '就餐!')
else:
print('已经有' + str(self.number_served) +'人在' + self.name + '就餐了!')
class Icecreamstand(Restaurant):
def __init__(self,restaurant_name,cuisine_type,*a):
super().__init__(restaurant_name,cuisine_type)
self.flavors = a
def flavor(self):
print(self.name + '的冰淇淋种类有:' + str(self.flavors) )
d = Restaurant('夜半食堂','中式餐饮')
d.describe_restaurant()
c = Icecreamstand('冰淇淋小店','甜品店','草莓味','西瓜味','橘子味','桃子味')
c.flavor()
这样是可以的,但是不想修改父类的形参,想在子类修改形参达到同样的效果。下面是有问题的代码,麻烦您给看下,谢谢啦
class Restaurant():
def __init__(self,restaurant_name,cuisine_type):
self.name = restaurant_name
self.type = cuisine_type
self.number_served = 0
def describe_restaurant(self):
print('餐厅的名字是:' + self.name)
print('餐厅的类型是:' + self.type)
def open_restaurant(self):
print('餐厅正在营业')
def set_number_served(self,renshu):
self.number_served = renshu
def increment_number_served(self,renshu):
self.number_served = self.number_served + renshu
def number(self):
if self.number_served == 0:
print('只有' + str(self.number_served) +'人在' + self.name + '就餐!')
else:
print('已经有' + str(self.number_served) +'人在' + self.name + '就餐了!')
class Icecreamstand(Restaurant):
def __init__(self,restaurant_name,cuisine_type,*a):
super().__init__(restaurant_name,cuisine_type)
self.flavors = a
def flavor(self):
print(self.name + '的冰淇淋种类有:' + str(self.flavors) )
d = Restaurant('夜半食堂','中式餐饮')
d.describe_restaurant()
c = Icecreamstand('冰淇淋小店','甜品店','草莓味','西瓜味','橘子味','桃子味')
c.flavor()
c.describe_restaurant()
跟上面我截图的代码一模一样的,不知道为什么现在又可以运行,输出也完全符合我的预期了。。好奇怪啊
一定学好python 发表于 2020-5-26 15:31
class Restaurant():
def __init__(self,restaurant_name,cuisine_type,*a): #不想在父类加*a,想直接 ...
已经用软件识图文字了...改了好一会{:10_245:} Twilight6 发表于 2020-5-26 15:31
我不想在父类加上*a的,只想在子类加。因为子类可以定制,那应该是可以做到的,但是发帖的时候就是报错,改了好多次都不行,刚才回消息的时候,再次尝试一下又可以了。。感谢您的帮助 一定学好python 发表于 2020-5-26 15:36
我不想在父类加上*a的,只想在子类加。因为子类可以定制,那应该是可以做到的,但是发帖的时候就是报错, ...
别客气~
页:
[1]