Olá Marcos, tudo bem com você?
Peço desculpas pela demora em lhe responder.
O list é uma função built-in do Python, como apresentado na documentação do python ela também é uma classe, assim podemos trabalhar com a herança de classe, herdando o comportamento dessa classe.
Quando a criamos a classe Playlist
queremos que ela possua comportamentos presentes em uma lista, uma alternativa seria implementarmos todos os métodos presentes na classe list
ou como alternativa mais prática, podemos fazer o uso da herança de classes, assim a nossa classe Playlist
será uma classe filha da classe list
. Como apresentado no código abaixo.
class Playlist(list):
def __init__(self, nome, programas):
self.nome = nome
super().__init__(programas)
Quando trabalhamos com herança de classe, será necessário utilizarmos o super() quando a classe filha possuir um método inicializador (__ init__) pois a classe filha que possui um método inicializador irá sobrescrever o método inicializador da classe mãe , como é no nosso caso.
No nosso código, no momento em que a classe Playlist
é instanciada o método inicializador dela é executado e temos que informar dois atributos, sendo, nome
e programas
. O primeiro atributo será salvo na classe filha (self.nome) o segundo atributo, que no nosso caso será uma lista que deverá ser utilizado no método inicializador da classe mãe (list), assim fazemos o uso do super().__init__(programas)
.
Após realizarmos essa inicialização, a nossa classe irá possuir um atributo nome
e um atributo programas
que herdou todos os métodos da classe list
, adquirindo assim o comportamento de lista.
Em resumo temos que a herança de classe é realizada de uma classe já existente internamente no Python, nesse caso a classe list
.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!