1
resposta

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

from datetime import timedelta

class Musica:
    '''Classe de registro das músicas.'''
    def __init__(self, nome: str, artista: str, duracao: timedelta):
        self.nome = nome
        self.artista = artista
        self.duracao = duracao

musica_garota_ipanema = Musica('Garota de Ipanema', 'Tom Jobim', timedelta(minutes=3, seconds=15))

musica_tente_outra_vez = Musica('Tente Outra Vez', 'Raul Seixas', timedelta(minutes=2, seconds=20))

musica_tenis_roque = Musica('Tênis Roque', 'Detonautas', timedelta(minutes=2, seconds=40))

segundos = musica_tenis_roque.duracao.total_seconds()
print(f"Duração de 'Tênis Roque' em segundos: {segundos}")
1 resposta

Oi, Marcos!

Seu código tá bem estruturado e mostra uma boa compreensão da criação de classes e uso do timedelta para representar durações. A ideia de converter o tempo total em segundos usando total_seconds() é uma abordagem boa.

O que você pode testar fazer mais pra frente é usar o método __str__ para personalizar a forma como os objetos são exibidos ao serem impressos.



class Musica:
    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})"

Com isso, ao usar print(musica_garota_ipanema), a saída será formatada de maneira mais legível.

Conteúdos relacionados
Alura

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