1
resposta

Mão na massa: refatorando uma função

class Musica:
    # Método construtor
    def __init__(self, nome, artista, duracao):
        self.nome = nome
        self.artista = artista
        self.duracao = duracao
    
    def __str__(self):
        return('{} - {} ({} segundos)'.format(self.nome, self.artista, self.duracao))

musica1 = Musica('Lazy Song', 'Bruno Mars', 200)
musica2 = Musica('Bohemian', 'Queen', 150)
musica3 = Musica('Your song', 'Elton John', 190)
1 resposta

Olá, Anderson! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de classes em Python para estruturar dados, utilizou muito bem o método __init__ para inicializar os atributos dos objetos e ainda compreendeu a importância do método __str__ para personalizar a forma como os objetos são exibidos.

Uma dica interessante para o futuro é usar f-strings para tornar a impressão das informações ainda mais legível e moderna. Dessa forma:

class Musica:
    # Método construtor
    def __init__(self, nome, artista, duracao):
        self.nome = nome
        self.artista = artista
        self.duracao = duracao
    
    def __str__(self):
        return f'{self.nome} - {self.artista} ({self.duracao} segundos)'

musica1 = Musica('Lazy Song', 'Bruno Mars', 200)
musica2 = Musica('Bohemian', 'Queen', 150)
musica3 = Musica('Your song', 'Elton John', 190)

print(musica1)
print(musica2)
print(musica3)

Resultado:

Lazy Song - Bruno Mars (200 segundos)
Bohemian - Queen (150 segundos)
Your song - Elton John (190 segundos)

Isso faz com que a saída seja mais limpa, elegante e com menos chances de erro de formatação.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!