1
resposta

[Dúvida] Chamando super classe dentro da classe Playlist

Na construção da classe Playlist junto do inicializador foi chamado a super classe:

class Playlist(list):
    def __init__(self, nome, programas):
        self.nome = nome
        super().__init__(programas)
        

Mas na hora que o programa é rodado ele imprime todos os atributos das classes Filmes e Séries. Como isso é possível se na super classe os únicos atributos disponíveis são nome, ano, e likes?

1 resposta

Olá, Bruno!

Na classe Playlist, ao chamar super().__init__(programas), você está chamando o inicializador da super classe list, que é a classe pai da classe Playlist.

Quando você chama super().__init__(programas), está inicializando a lista com os programas passados como parâmetro. Como a classe list não possui restrições quanto aos tipos de elementos que podem ser adicionados à lista, ela aceita qualquer tipo de objeto, incluindo objetos das classes Filmes e Séries.

Portanto, quando você cria uma instância da classe Playlist e passa uma lista de programas que contém objetos das classes Filmes e Séries, esses objetos são adicionados à lista da Playlist.

Ao imprimir a Playlist, você verá todos os atributos dos objetos, incluindo os atributos específicos das classes Filmes e Séries.

Espero ter ajudado e bons estudos!