请帮忙看下类继承的错误问题多谢
本人初学,在类继承的时候遇到点小问题 一时无法想开,请指点下怎么解决 ~\
一段简单的类:
class Dog(object):
def init(self,name,age,color):
self.name=name
self.age=age
self.color=color
def eat(self):
print(self.name,"在吃蛋糕")
def run(self,speed):
print(self.name+"吃完蛋糕飞快的跑!速度:"+speed)
class Taidi(Dog):
def init(self,size,color):
super(Taidi,self).init(color) #13行
self.size=size
def height(self):
print(self.size+"型犬")
taidi=Taidi("小","黄色") #18行
执行后提示:
Traceback (most recent call last):
File "C:\Users\Kano\Desktop\py\test15.py", line 18, in
taidi=Taidi("小","绿色")
File "C:\Users\Kano\Desktop\py\test15.py", line 13, in init
super(Taidi,self).init(color)
TypeError: init() missing 2 required positional arguments: 'age' and 'color'
关于 LearnKu
Taidi 继承了 Dog 类,Dog类初始化方法有三个位置参数
name,age,color, 而Taid 类用super调用父类初始化方法,却只提供了一个参数 color 见第13行代码。换而言之,实参与形参不一致。另外python的初始方法是一个特殊的魔术方法__init__,类似于其他语言中的的构造函数,所以,你的代码可以这样写错误原因:
父类初始化需要三个参数,
在子类初始化方法里面初始化父类的时候, 只传递了一个参数
代码要高亮