0

我是初学者,这个疑问抓住了我......

我有一个ProfessorAuxiliar继承类属性的类ProfessorAluno. 但是当使用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 个的所有属性?

4

2 回答 2

0

而不是super,尝试使用parent_classname.__init__()每个继承的类并将这些参数相应地传递给那些父类的构造函数。 编辑:ProfessorAuxiliar课堂上

于 2020-08-14T08:53:25.320 回答
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)
于 2020-08-14T08:54:12.280 回答