5
respostas

O meu caso está dando erro

class Musica: nome = '' artista = '' duracao = ''

musica_1 = Musica()
musica_1.nome = 'Hello'
musica_1.artista = 'Adele'
musica_1.duracao = '4:56'
musicas = [musica_1.nome, musica_1.artista, musica_1.duracao]
print(musicas)

#o erro em questão: musica_1 = Musica() # ^^^^^^ #NameError: name 'Musica' is not defined

5 respostas

Oi Maria,

O erro NameError: name 'Musica' is not defined indica que a classe Musica não foi definida antes de ser utilizada. 😜

No seu código, a definição da classe está incompleta, faltando o bloco de código que define o comportamento da classe.

Para saber mais: Documentação oficial do Python sobre classes.

Continue praticando e explorando o mundo da programação! 🧐

Boa noite, muito obrigada por responder! Qual seria o bloco de código em questão? Coloquei "class Musica:"

Oi Maria,

Veja esses dois exemplos:

class Musica:
    def __init__(self, nome, artista, duracao):
        self.nome = nome
        self.artista = artista
        self.duracao = duracao

musica_1 = Musica('Hello', 'Adele', '4:56')
musicas = [musica_1.nome, musica_1.artista, musica_1.duracao]
print(musicas)

Ou, se você não quiser usar o método __init__ agora, pode usar:

class Musica:
    nome = ''
    artista = ''
    duracao = ''

musica_1 = Musica()
musica_1.nome = 'Hello'
musica_1.artista = 'Adele'
musica_1.duracao = '4:56'
musicas = [musica_1.nome, musica_1.artista, musica_1.duracao]
print(musicas)

A primeira opção é mais comum e flexível, pois permite criar objetos Musica com valores iniciais diretamente. 🤔

Para saber mais: Classes em Python. Este link leva à documentação oficial do Python sobre classes, onde você pode aprofundar seus conhecimentos sobre o tema.

Continue praticando e explorando o mundo da programação! 🧐

Agora consegui fazer do jeito certo, muito obrigada.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade