我是一个初学者,这个疑问吸引了我...
我有一个类ProfessorAuxiliar
,它继承了类Professor
和Aluno
的属性。
但是当使用super()
时,它将返回TypeError: __init __ () takes 7 positional arguments but 10 were given
。
...
class Aluno(Pessoa):
def __init__(self, nome, sobrenome, cpf, data, sexo, matricula, semestre, curso):
super().__init__(nome, sobrenome, cpf, data, sexo)
self.__matricula = matricula
self.__semestre = semestre
self.__curso = curso
class Professor(Pessoa):
__lista_de_indicacoes = []
def __init__(self, nome, sobrenome, cpf, data, sexo, materia):
super().__init__(nome, sobrenome, cpf, data, sexo)
self.__materia = materia
class ProfessorAuxiliar(Professor, Aluno):
def __init__(self, nome, sobrenome, cpf, data, sexo, materia, matricula, semestre, curso):
super().__init__(nome, sobrenome, cpf, data, sexo, materia, matricula, semestre, curso)
...
如何使ProfessorAuxiliar
类继承其他2个类的所有属性?
答案 0 :(得分:0)
尝试对每个继承的类使用super
而不是parent_classname.__init__()
,并将这些args相应地传递给那些父类的构造函数。
编辑:在ProfessorAuxiliar
类中
答案 1 :(得分:0)
我认为这是正确的方法。
class ProfessorAuxiliar(Professor, Aluno):
def __init__(self, nome, sobrenome, cpf, data, sexo, materia, matricula, semestre, curso):
Professor.__init__(self,self, nome, sobrenome, cpf, data, sexo, matricula, semestre, curso)
Aluno.__init__(self,nome, sobrenome, cpf, data, sexo)