Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Meu exemplo do exercício :)

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()
2 respostas
solução!

Oii, Pedro! Tudo bem?

Você está certo!

Obrigada por compartilhar aqui no fórum o seu exemplo de exercício, e também por comentar sobre não precisar usar o método str.

Se quiser compartilhar outras coisas por aqui, fique à vontade.

Abraços e bons estudos!

Gostei bastante desse negocio de Oo meu exemplo de codigo, me empolguei tanto que criei um filtro pra artista e nomes das musicas

class Musica:
    musicas = []

    def __init__(self, nome='', artista='', genero='', duracao=0):
        self.nome = nome
        self.artista = artista
        self.genero = genero
        self.duracao = duracao
        Musica.musicas.append(self)

    @staticmethod
    def listar_musica():
        for musicas in Musica.musicas:
            print(f'{musicas.nome} | {musicas.artista} | {musicas.genero} | {musicas.duracao}')

    @staticmethod
    def filtrar_por_nome():
        for musicas in Musica.musicas:
            print(f'{musicas.nome}')

    @staticmethod
    def filtrar_por_artista():
        for musicas in Musica.musicas:
            print(f'{musicas.artista}')


musica_metal = Musica(nome="The Trooper", artista="Iron Maiden", genero="Metal", duracao=247)
musica_funk = Musica(nome="Play That Funky Music", artista="Wild Cherry", genero="Funk", duracao=300)
musica_reggae = Musica(nome="Could you be loved", artista="Bob Marley", genero="Reggae", duracao=241)
musica_rock = Musica(nome="Bohemian Rhapsody", artista="Queen", genero="Rock", duracao=354)
musica_pop = Musica(nome="Shape of You", artista="Ed Sheeran", genero="Pop", duracao=233)
musica_indie = Musica(nome="Ho Hey", artista="The Lumineers", genero="Indie", duracao=162)

print("\n")
Musica.listar_musica()
print("\n")
Musica.filtrar_por_nome()
print("\n")
Musica.filtrar_por_artista()