Bom dia, Luciano! Como vai?
O código que você apresentou não está sendo executado corretamente. Tanto por erros de indentação, quanto por erros de sintaxe e lógica.
Um deles, por exemplo, é atribuir 3:14
a uma variável inteira. Isso não é possível por causa do uso dos dois pontos. Uma alternativa seria definir a duração como uma string ou usar a classe timedelta
para representar os minutos e segundos.
A correção completa ficaria assim:
from datetime import timedelta
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 f'{self.nome} | {self.artista} | {self.duracao}'
def listar_musica(): # Indentação corrigida
for musica in Musica.musicas: # Trecho corrigido
print(f'{musica.nome} | {musica.artista} | {musica.duracao}')
musica1 = Musica('In da Club', '50Cent', timedelta(minutes=3, seconds=14)) # Uso do timedelta
musica2 = Musica('Ventos dos Areais', 'Soweto', timedelta(minutes=4, seconds=6))
musica3 = Musica('Descobridor dos Sete Mares', 'Tim Maia', timedelta(minutes=4, seconds=26))
Musica.listar_musica() # Nome da função corrigida
Fico à disposição! E se precisar, conte sempre com o apoio do fórum.
Abraço e bons estudos!
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!