Dessa forma também estaria correto?
class musica:
nome = ''
artista = ''
duração = float
musica_estilo = musica()
musica_estilo.nome = 'Sou um programador'
musica_estilo.artista = 'Capossi'
musica_estilo.duração = 4.30
Dessa forma também estaria correto?
class musica:
nome = ''
artista = ''
duração = float
musica_estilo = musica()
musica_estilo.nome = 'Sou um programador'
musica_estilo.artista = 'Capossi'
musica_estilo.duração = 4.30
Olá, Erickson! Tudo bem?
Sua ideia está correta, porém, há alguns detalhes que precisamos ajustar.
Em Python, é uma prática comum definir os atributos de uma classe dentro do método construtor __init__
. Isso permite que, quando um objeto dessa classe for criado, os atributos sejam inicializados com valores padrão ou com valores passados na criação do objeto.
Além disso, em Python, as classes começam geralmente com uma letra maiúscula. Então, sua classe seria melhor definida assim:
class Musica:
def __init__(self):
self.nome = ''
self.artista = ''
self.duracao = 0.0
Espero ter ajudado e bons estudos!
Olá, Erickson!
Complementando a orientação do Armano, você pode usar parâmetros passados para o construtor para atribuí-los aos atributos da classe Musica()
assim que o objeto for criado, reduzindo assim o número de linhas que terá que escrever.
Além disso, pode definir valores padrão para tais parâmetros. Assim, quando o objeto for criado tanto preenchendo os parâmetros quanto sem preencher os parâmetros, como no exemplo abaixo, não ocorrerá erro.
Ficaria assim:
class Musica:
def __init__(self, nome = 'Teste', artista = 'Teste', duracao = 0.0):
self.nome = nome
self.artista = artista
self.duracao = duracao
musica_estilo1 = Musica('Sou um programador', 'Capossi', 4.30)
musica_estilo2 = Musica()
print(musica_estilo1.nome, musica_estilo1.artista, musica_estilo1.duracao, sep = ', ')
print(musica_estilo2.nome, musica_estilo2.artista, musica_estilo2.duracao, sep = ', ')
A saída dos dois print()
's será: