Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro no código?

Ola

Meu codigo retorna a referencia da memoria... devo ter deixado alguma coisa passar :/

class Programa:

  def __init__(self, nome, ano):
    self._nome = nome.title()
    self.ano = ano
    self._likes = 0

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

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

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

  def dar_likes(self):
    self._likes += 1

  def __str__(self):    
    return f'Nome: {self._nome} - Ano: {self.ano} - Likes: {self._likes}'


class Filmes (Programa):

  def __init__(self, nome, ano, duracao):
    super().__init__(nome, ano)
    self.duracao = duracao

  def __str__(self):     
    return f'Nome: {self._nome} - Ano: {self.ano} - {self.duracao} min - Likes: {self._likes}'


class Series(Programa):

  def __init__(self, nome, ano, temporada):
    super().__init__(nome, ano)
    self.temporada = temporada

  def __str__(self):   
    return f'Nome: {self._nome} - Ano: {self.ano} - {self.temporada} Temporada - Likes: {self._likes}'

vingadores = Filme('vingadores', 2018, 160)
atlanta = Serie('atlanta', 2018, 2)

filmes_e_series = [vingadores, atlanta]

for programa in filmes_e_series:
  print(programa)   

A saída é:

<__main__.Filme object at 0x7fd5521f7dd8>
<__main__.Serie object at 0x7fd5521f7a58>

Pq?

Obrigada!

2 respostas
solução!

Olá Darciane, tudo bem? Espero que sim!

Analisando o seu código, ele deveria ocasionar em um erro a não ser que você tenha definido a classe Filme e a classe Serie em uma parte anterior do seu código.

As classes escritas na parte que você enviou estão corretas mas estão escritas como Filmes e Series com um s adicional, mas no momento da instanciação dos objetos:

vingadores = Filme('vingadores', 2018, 160)
atlanta = Serie('atlanta', 2018, 2)

Você utilizou as classes sem o s adicional, então provavelmente instanciou objetos a partir de outras classes e não dessas que estão no seu código. Basta acrescentar os Ss que irá funcionar:

vingadores = Filmes('vingadores', 2018, 160)
atlanta = Series('atlanta', 2018, 2)

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!

Ola Vitor1 Deu certo. Era só o 's'. Depois de um dia de estudo a gente já não vê mais nada ne? rsrs

Obrigada!!