1
resposta

AttributeError & None no print

Primeiramente, meu codigo deu AttributeError, assim como ja vi aqui no forum. Vou colocar meu codigo inteiro aqui:

class Programa:
  def __init__(self, nome, ano):
    self._nome = nome
    self._ano = ano
    self._likes = 0

  @property
  def nome(self):
    return self._nome.title()

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

  @property
  def dar_like(self):
    self._likes += 1

class Filme(Programa):
  def __init__(self, nome, ano, duracao):
    super().__init__(nome, ano)
    self._duracao = duracao

  @property  
  def info(self):
    print(f'{self._nome} \nAno: {self._ano}\nDuracao: {self._duracao} minutos\nLikes: {self.likes}')

class Serie(Programa):
  def __init__(self, nome, ano, temporadas):
    super().__init__(nome, ano)
    self._temporadas = temporadas

  @property
  def info(self):
    print(f'{self._nome} - {self._temporadas} temporada(s)\nAno: {self._ano}\nLikes: {self.likes}')

Meu primeiro erro foi quando estava testando a funcionalidade info(), mas antes, nao entendi por que ocorreu AttributeError quando fui tentar fazer o for in

et = Filme('ET', 1999, 145)
et.dar_like
mr = Serie('Mr. Robot', 2018, 2) 

filmes_e_series = [et, mr]

for programa in filmes_e_series:
  detalhes = programa.duracao if hasattr(programa, 'duracao') else programa.temporadas
  print(f'{programa.nome} - {detalhes} - {programa.likes}')

Agora minha segunda duvida eh relacionada a funcionalidade que eu criei, pois quando eu faço um laço na função info(), ela retorna None na ultima linha:

for programa in filmes_e_series:
  print(f'{programa.info}\n')

retorno:

ET Ano: 1999 Duracao: 145 minutos Likes: 1 None

Mr. Robot - 2 temporada(s) Ano: 2018 Likes: 0 None

(as informacoes sobre os filmes e series foram tiradas da minha mente)

1 resposta
O post foi fechado por inatividade após 3 meses. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!