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

Atividade 06 - Refatorando uma função

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()
1 resposta
solução!

Oi, Eduardo! Como vai?

Sua solução está bem estruturada, e o uso do @classmethod para listar as músicas foi uma boa escolha. O código está organizado e mostra que você entendeu bem os conceitos da aula.

Continue explorando a orientação a objetos, ela ajuda muito a deixar o código mais reutilizável.

Abraços e bons estudos!