Em teoria não precisamos do método str pois não chamamos nenhum objeto musica no print, e sim através da def listar_musicas
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):
return f'{self.nome} | {self.artista} | {self.duracao}'
def listar_musicas():
for musica in Musica.musicas:
print(f'{musica.nome} | {musica.artista} | {musica.duracao}')
musica1 = Musica('Isnt she lovely', 'Stevie Wonder', 230)
musica2 = Musica('Leao', 'Elevation Worship', 230)
Musica.listar_musicas()