Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

NameError: name 'nome' is not defined

O código está retornando o seguinte erro:

NameError Traceback (most recent call last) in () 1 ----> 2 class Filme: 3 def init(self, nome, ano, duracao): 4 self.__nome = nome.title() 5 self.ano = ano

in Filme() 14 self.likes += 1 15 ---> 16 @nome.setter 17 def nome(self, novo_nome): 18 self.nome = novo_nome.title()

NameError: name 'nome' is not defined

CÓDIGO DO ARQUIVO

class Filme: def init(self, nome, ano, duracao): self.nome = nome.title() self.ano = ano self.duracao = duracao self.likes = 0

@property
def likes(self):
  return self.__likes

def darLike(self):
  self.__likes += 1

@nome.setter
def nome(self, novo_nome):
  self.__nome = novo_nome.title()

class Serie: def init(self, nome, ano, temporadas): self.__nome = nome.title() self.ano = ano self.temporadas = temporadas self.likes = 0

@property
def likes(self):
  return self.__likes

@nome.setter
def nome(self, novo_nome):
  self.__nome = novo_nome.title()


def darLike(self):
  self.__likes += 1

vingadores = Filme('vingadores - guerra infinita', 2018, 160)

vingadores.darLike()

print(f'Nome: {vingadores.nome} - Ano: {vingadores.ano} ' f'- Duração: {vingadores.duracao} - Likes: {vingadores.likes}')

atlanta = Serie('atlanta', 2018, 2)

atlanta.darLike() atlanta.darLike()

print(f'Nome: {atlanta.nome} - Ano: {atlanta.ano} ' f'- Temporadas: {atlanta.temporadas} - Likes: {atlanta.likes}')

1 resposta
solução!

Bom dia, Caio!

Não sei se entendi direito, mas pelo que você colocou nessa linha: "in Filme() 14 self.likes += 1 15 ---> 16 @nome.setter 17 def nome(self, novo_nome): 18 self.nome = novo_nome.title()" me parece que self.nome = novo_nome.title() está discrepante do resto e deveria estar como self.__nome = novo_nome.title(). Não tive uma visualização completa de tudo o que aconteceu, mas tente procurar pelo seu código todo se não tem nenhum self.nome das def's. Uma vez que você determinou que a variável "nome" é privada com 2 underscores (_) as outras self.nome também tem que estar como self.__nome para não ocorrer erros de execução.

Se não ficou claro ou não for esse o problema poderia postar o código completo e um print do erro, por favor?

No mais espero ter ajudado :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software