问题描述
我是一个初学者,这个疑问吸引了我...
我有一个类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,sexo)
self.__matricula = matricula
self.__semestre = semestre
self.__curso = curso
class Professor(Pessoa):
__lista_de_indicacoes = []
def __init__(self,materia):
super().__init__(nome,sexo)
self.__materia = materia
class ProfessorAuxiliar(Professor,Aluno):
def __init__(self,materia,curso)
...
如何使ProfessorAuxiliar
类继承其他2个类的所有属性?
解决方法
尝试对每个继承的类使用super
而不是parent_classname.__init__()
,并将这些args相应地传递给那些父类的构造函数。
编辑:在ProfessorAuxiliar
类中
我认为这是正确的方法。
class ProfessorAuxiliar(Professor,Aluno):
def __init__(self,nome,sobrenome,cpf,data,sexo,materia,matricula,semestre,curso):
Professor.__init__(self,self,curso)
Aluno.__init__(self,sexo)