Para esta questão usei o seguinte código:
class Musica:
def __init__(self, nome, artista, duracao):
self.nome = nome
self.artista = artista
self.duracao = duracao
def __str__(self):
return f"A música {self.nome} é do(a) {self.artista} e tem uma duração de {self.duracao}."
musica_ha_tempos = Musica("Há Tempos", "Legião Urbana", "04:52")
musica_sera = Musica("Será", "Legião Urbana", "02:55")
musica_resposta = Musica("Resposta", "Skank", "03:35")
print(musica_ha_tempos)
print(musica_sera)
print(musica_resposta)
Mas vi que na "Opinião do instrutor", estava de forma diferente com
def __init__(self, nome=' ', artista=' ', duracao=0):
Qual seria a aplicação prática de se usar "self, nome=' ', artista=' ', duracao=0)"?
No Python, o tipo é definido automaticamente pelo valor atribuído, mas mesmo assim é preciso especificar explicitamente o tipo esperado em uma de uma variavel na classe?