Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida no super()

Vejam se meu raciocínio está correto. "Quando passamos a classe mãe Programa como argumento para as classes filhas, Filme e Série, estamos fazendo que todas as informações contidas em Programa sejam replicadas". Isso está correto? Se sim, porque é necessário chamar o super()?

2 respostas
solução!

Oiii Janderson, tudo bem?

Quando utilizamos a herança entre as classes, fazemos com que as classes filhas tenham direito a todos os atributos e métodos da classe mãe, porém, em alguns casos precisamos explicitar que queremos utilizar os atributos/métodos da classe mãe e isso é feito com o super(), como foi o caso do dunder __init__ na classe Filme e Serie. Ambas queriam utilizar o método init da classe mãe e para deixar explícito isso para o Python utilizamos o super(). Por exemplo:

class Serie(Programa):
    def __init__(self, nome, ano, temporadas):
        super().__init__(nome, ano) # falamos explicitamente que queremos utilizar o init da classe mãe que é Programa
        self.temporadas = temporadas

Pegou a ideia?

Qualquer dúvida é só falar, estou a disposição. Abraços e bons estudos!

Entendi, muito obrigado.