Olá, Mateus! Tudo bem?
Parabéns! Continue resolvendo os desafios e compartilhando com a comunidade Alura.
Percebi que você dominou o uso de classes em Python, aplicou muito bem o conceito de atributos de classe para armazenar todas as músicas e ainda demonstrou compreender a relevância de métodos estáticos para organizar funcionalidades que não dependem de instância.
Uma sugestão interessante para evoluir ainda mais é usar o decorador @staticmethod
com o objetivo de indicar claramente que o método listar_musicas
não depende de uma instância da classe. Veja só:
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}'
@staticmethod
def listar_musicas():
for musica in Musica.musicas:
print(musica)
musica1 = Musica(nome='Um Pedido', artista='Hungria', duracao=305)
musica2 = Musica(nome='Memento Mori', artista='LetoDie', duracao=335)
musica3 = Musica(nome='Um Plano', artista='Misael', duracao=290)
Musica.listar_musicas()
Resultado:
Um Pedido | Hungria | 305
Memento Mori | LetoDie | 335
Um Plano | Misael | 290
Essa abordagem ajuda a deixar seu código mais semântico e legível, reforçando boas práticas de orientação a objetos.
Para saber mais:
Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:
Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.
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!