Oii, Cauâ!
Realmente, se você tentar fazer apenas print(musicas), o Python vai te mostrar algo meio estranho, como <__main__.Musica object at 0x...>, que é o endereço de memória onde o objeto está guardado, e não os dados dele.
Pra ver as informações bonitinhas, precisamos "percorrer" a sua lista e pedir para o Python imprimir item por item. A melhor ferramenta para isso é o laço de repetição for.
Vou te mostrar uma forma de fazer isso:
Nesta opção, montamos uma frase para cada música. É a forma mais usada para mostrar dados para o usuário.
# Supondo que a lista 'musicas' já existe e contém seus 3 objetos
for musica in musicas:
print(f"{musica.nome} - {musica.artista} ({musica.duracao})")
O que esse código faz:
- O
for pega a primeira música da lista e chama de musica. - O
print mostra os atributos .nome, .artista e .duracao. - Ele repete isso para a segunda e a terceira música automaticamente.
Código pra testar:
class Musica:
nome = ''
artista = ''
duracao = float
# Criando os objetos
musica1 = Musica()
musica1.nome = 'Cosmic Monster'
musica1.artista = 'Anirap'
musica1.duracao = 4.24
musica2 = Musica()
musica2.nome = 'Perfecsionismo'
musica2.artista = 'Anirap'
musica2.duracao = 4.00
musica3 = Musica()
musica3.nome = 'Takaba'
musica3.artista = 'Pejota'
musica3.duracao = 4.18
# criando a lista
musicas = [musica1, musica2, musica3]
# imprimindo as informações
print("--- Minha Playlist ---")
for musica in musicas:
print(f"Música: {musica.nome} | Artista: {musica.artista} | Duração: {musica.duracao}")
Espero ter ajudado.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!