Python TypeError:\uuuu init\uuuuuu()正好接受4个参数(给定1个)

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):

我需要帮助,我在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):
        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()