Olá, Lucas! Como vai?
Parabéns pela resolução da atividade!
Observei que você explorou o uso de atributos de classe para armazenar todas as instâncias criadas, utilizou muito bem o método __init__ para inicializar os objetos e ainda compreendeu a importância do __str__ para representar os dados de forma legível.
Uma dica interessante para o futuro é transformar o método listar_musicas em um @classmethod, o que torna mais claro que ele opera sobre a classe e não sobre uma instância específica. Assim:
class Musica:
musicas = []
def __init__(self, nome='', artista='', duracao=0):
self.nome = nome
self.artista = artista
self.duracao = duracao
Musica.musicas.append(self)
def __str__(self):
return f'{self.nome} | {self.artista} | {self.duracao}'
@classmethod
def listar_musicas(cls):
for musica in cls.musicas:
print(musica)
Isso faz o código ficar mais organizado e alinhado com as boas práticas de POO.
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!