class Musica:
musicas = [] # Lista para armazenar os objetos criados desta classe
# Construtor
def __init__(self, nome, artista, genero_musical, duracao):
self.nome = nome
self.artista = artista
self.genero_musical = genero_musical
self.duracao = duracao
Musica.musicas.append(self)
# __str__ permite a representação textual do nosso objeto
def __str__(self):
return f'{self.nome} - {self.artista} - {self.genero_musical} - {self.duracao}'
''' Método de classe usando o decorador @classmethod (e cls no lugar do nome da classe) '''
@classmethod
def listar_musicas(cls):
i = 0 # Contador/Numerador
for musica in cls.musicas:
i += 1
print(f'Música nº {i}: {musica.nome} - Artista: {musica.artista} - Gênero musical: {musica.genero_musical} - Duração (segundos): {musica.duracao}')
# Cria uma instância de objeto da classe Musica
musica_1 = Musica('Under Pressure', 'Queen', 'Pop rock', 248)
musica_2 = Musica('Happy Nation', 'Ace of Base', '90\'s Dance-pop', 256)
musica_3 = Musica('Help!', 'The Beatles', '60\'s Pop rock', 138)
musica_4 = Musica('Eyes Without A Face', 'Billy Idol', 'New wave synth-pop', 298)
Musica.listar_musicas()