1
resposta

Dúvida sobre construtor herança

Dado o seguinte exemplo, gostaria de entender porque eu tenho que repetir os atributos do construtor da classe mae no meu construtor da classe filha se no super eu explicito para o python que desejo usar os atributos 'nome' e 'ano' no meu construtor da classe filha. É possível evitar essa repetição de forma simples ?

class Filme(Programa):
    def __init__(self, nome, ano, duracao):
        super().__init__(nome, ano)
        self.duracao = duracao
1 resposta

Oi Matheus, como você está? Espero que esteja bem ^-^

Sinto muito pela demora em obter um retorno.

Quando você explicita o 'nome' e o 'ano', está se referindo apenas aos nomes das variáveis que estão no construtor da classe filha, mas, poderia ser outra nomenclatura. Por exemplo:

class Filme(Programa):
    def __init__(self, nome_do_filme, ano_do_filme, duracao):
        super().__init__(nome_do_filme, ano_do_filme)
        self.duracao = duracao

Basicamente, você diz ao Python:

  • Eu quero iniciar o construtor da classe mãe com os seguintes atributos recebidos da classe filha. Observe que quando vamos instanciar um Filme, passamos o nome, o ano, e a duração e por isso, passamos os atributos nome e ano no construtor, que são semelhantes aos mesmos atributos que temos na classe mãe.

Qualquer dúvida estou por aqui, tá bom?

Grande abraço!