Q1
报错:
TypeError: Human.__init__() takes 1 positional argument but 3 were given
错误代码:
class Human(Mammal):
def __init__(self): ##问题在这里
super().__init__(name, gender)
def read(self):
print(self.name+'在阅读。。。')
human1 = Human('文文','女')
print(human1.name)
修改之后:
class Human(Mammal):
def __init__(self, name, gender):#问题所在
super().__init__(name, gender)#这里也要注意,括号里别少参数
def read(self):
print(self.name+'在阅读。。。')
human1 = Human('文文', '女')
print(human1.name)
修改点:在Human类的构造函数中添加name和gender参数,以便正确调用父类的构造函数。
反思:对于继承语法还是不够熟悉。其实还是要弄清楚构造方法,构造方法括号里是要包含全部参数的