class Musica:
musicas = []
def __init__(self,nome,artista,duracao):
self.nome = nome
self.artista = artista
self.duracao = int(duracao)
Musica.musicas.append(self)
def __str__(self) -> str:
return f'Nome:{self.nome}\nArtista:{self.artista}\nDuração:{self.duracao} minutos'
def visualizar(self):
print(self)
def listar_musicas():
for musica in Musica.musicas:
print(f'Nome:{musica.nome} | Artista:{musica.artista} | Duração: {musica.duracao}')
sandy_junior= Musica('Imortal','Sandy&Jr',4)
marisa_monte = Musica('Ainda Bem', 'Marisa Monte', 3)
Musica.listar_musicas()
também vi algo como usar @classmethod em visualizar, ficando:
@classmethod
def listar_musicas(cls):
for musica in Musica.musicas:
print(f'Nome:{musica.nome} | Artista:{musica.artista} | Duração: {musica.duracao}')
Isso permite que o método seja sempre da classe e não de uma instância, mantendo integridade do dado. Correto?