Olá, Bruno! Como vai?
Parabéns pela resolução da atividade!
Vi que você explorou a classe para estruturar músicas com Python, utilizou muito bem a lista estática para armazenar os objetos criados e ainda compreendeu a importância da método especial __str__ para exibir informações de forma legível.
Uma dica interessante para o futuro é transformar o método listar_musicas em um método de classe usando @classmethod. Assim:
class Musica:
musicas = []
def __init__(self, nome, artista, duracao):
self.nome = nome
self.artista = artista
self.duracao = duracao
Musica.musicas.append(self)
@classmethod
def listar_musicas(cls):
for musica in cls.musicas:
print(musica)
def __str__(self):
return f'{self.nome} | {self.artista} | {self.duracao}'
Isso faz com que o método fique mais alinhado ao conceito de classe, usando cls em vez de referenciar diretamente Musica.
Se quiser aprofundar ainda mais, algumas boas práticas são:
- Uso de propriedades: aplicar
@property para controlar leitura e escrita de atributos. - Separação de responsabilidades: manter métodos de exibição separados de lógica de negócio.
- Encapsulamento: proteger atributos com convenções como
_atributo quando não devem ser acessados diretamente.
Ah, uma pergunta: você acha que transformar listar_musicas em um método de classe deixa o código mais organizado e alinhado ao paradigma orientado a objetos ou prefere manter como função para maior clareza inicial?
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!