Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha Solução

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Oi Bruno,

Sua solução está bem encaminhada! 👍

A classe Musica está armazenando as músicas em uma lista estática musicas.

No entanto, o método __str__ está imprimindo "Dados da música" e retornando uma string formatada.

O ideal seria que ele apenas retornasse a string formatada, sem imprimir nada. 🤔

class Musica:
    musicas = []
    
    def __init__(self, nome, artista, duracao):
        self.nome = nome
        self.artista = artista
        self.duracao = duracao
        Musica.musicas.append(self)
        
    def __str__(self):
        return ('Dados da música:\n'
                f'Nome: {self.nome}\n'
                f'Artista: {self.artista}\n'
                f'Duração: {self.duracao} minutos\n')
                
    def listar_musicas():
        print('Dados de músicas:\n')
        for musica in Musica.musicas:
            print(f'Nome: {musica.nome}\n'
                  f'Artista: {musica.artista}\n'
                  f'Duração: {musica.duracao} minutos\n')

musica_1 = Musica('Chã de Giz', 'Zé Ramalho', 7)
musica_2 = Musica('Há Tempos', 'Legião urbana', 4)

Musica.listar_musicas()

print(musica_1)

Para saber mais: Documentação oficial do Python sobre métodos especiais. Este link aborda o uso e a importância dos métodos especiais como __init__ e __str__ em Python.

Continue praticando e explorando as possibilidades da orientação a objetos! 💪