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

Não consigo encontrar o porque desse erro

File "main.py", line 53, in print(f"Nome: {joker.nome} - Ano: {joker.ano} - Duração {joker.duracao} - likes {joker.like} ")AttributeError: 'filme' object has no attribute 'like'

class filme:
  def __init__(self, nome, ano, duracao):
    self.__nome = nome.title() 
    self.ano = ano
    self.duracao = duracao
    self.__like = 0

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

  def dar_like(self):
    self.__like += 1 

  @property
  def nome(self):
    return self.__nome

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



class serie:
  def __init__(self, nome, ano, Temp):
    self.__nome = nome.title() 
    self.ano = ano
    self.Temp = Temp
    self.__like = 0

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

  def dar_like(self):
    self.__like += 1 

  @property
  def nome(self):
    return self.__nome

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



joker = filme("joker", 2019, 160)

joker.dar_like()

print(f"Nome: {joker.nome} - Ano: {joker.ano} - Duração {joker.duracao} - likes {joker.like} ")
1 resposta
solução!

Olá Yan,

O erro acontece porque você definiu o acesso ao atributo like como likes (com 's' no final) logo no início do seu código:

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

Então para acessar esse valor no seu filme você deve fazer assim:

# Troca joker.like por joker.likes
print(f"Nome: {joker.nome} - Ano: {joker.ano} - Duração {joker.duracao} - likes {joker.likes} ")