Python TypeError:\uuuu init\uuuuuu()正好接受4个参数(给定1个)
我需要帮助,我在Python中有以下带有继承的类,但我有一个错误:Python TypeError:\uuuu init\uuuuuu()正好接受4个参数(给定1个),python,typeerror,Python,Typeerror,我需要帮助,我在Python中有以下带有继承的类,但我有一个错误: class Human: def __init__(self,name,surname,age): self.name = name self.surname = surname self.age = age def getName(self): return self.name def getSurname(self):
class Human:
def __init__(self,name,surname,age):
self.name = name
self.surname = surname
self.age = age
def getName(self):
return self.name
def getSurname(self):
return self.surname
def setName(self, name):
self.name = name
def setSurname(self, surname):
self.surname = surname
def setAge(self, age):
self.age = age
def getAge(self):
return self.age
pass
以及:
当我实例化以下错误时
from Student import Student
student1 = Student("Jhon", "Santana", "20", "111000")
错误:
Human().__init__(self, name, surname, age)
TypeError: __init__() takes exactly 4 arguments (1 given)
这一错误的原因是什么?谢谢…不要把你的家长课当作例子
def __init__(self,name,surname,age,file):
Human.__init__(self,name, surname, file)
甚至更好
super(Human,self).__init__(name,surname,age)
这不是创建类实例的方式
你应该做:
Human.__init__(self,name, surname, age)
没有。否则您尝试在Human中创建它的实例,如详细说明所示,建议使用super:
def __init__(self, name, surname, age, file):
super(Human, self).__init__(name, surname, age)
self.file = file
试试这个:
class Human:
def __init__(self,name,surname,age):
self.name = name
self.surname = surname
self.age = age
def getName(self):
return self.name
def getSurname(self):
return self.surname
def setName(self, name):
self.name = name
def setSurname(self, surname):
self.surname = surname
def setAge(self, age):
self.age = age
def getAge(self):
return self.age
class Student(Human):
def __init__(self, name,surname,age,file):
super().__init__(name, surname, age)
self.file = file
def getFile(self):
return self.file
def setFile(self, file):
self.file = file
student1 = Student("Jhon", "Santana", "20", "111000")
input()
当继承另一个类但要覆盖某些属性时,需要在超级构造函数中添加要覆盖的父类属性,以便传递到学生类的属性可以直接传递到父类
请随时在以下地址观看我关于继承的视频:
def __init__(self, name, surname, age, file):
super(Human, self).__init__(name, surname, age)
self.file = file
class Human:
def __init__(self,name,surname,age):
self.name = name
self.surname = surname
self.age = age
def getName(self):
return self.name
def getSurname(self):
return self.surname
def setName(self, name):
self.name = name
def setSurname(self, surname):
self.surname = surname
def setAge(self, age):
self.age = age
def getAge(self):
return self.age
class Student(Human):
def __init__(self, name,surname,age,file):
super().__init__(name, surname, age)
self.file = file
def getFile(self):
return self.file
def setFile(self, file):
self.file = file
student1 = Student("Jhon", "Santana", "20", "111000")
input()