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

Attribute Error

O meu código está dando o seguinte erro:

Traceback (most recent call last):
  File "D:\Documentos\Python Projetos\oo2\modelo.py", line 44, in <module>
    detalhes = programa.duracao if hasattr(programa, 'duracao') else programa.temporadas
AttributeError: 'Filme' object has no attribute 'temporadas'

O meu codigo completo:

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

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

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

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

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

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


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


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

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

filmes_e_series = [vingadores, atlanta]

for programa in filmes_e_series:
    detalhes = programa.duracao if hasattr(programa, 'duracao') else programa.temporadas
    print(f'{programa.nome} - {detalhes} D - {programa.likes}')
1 resposta
solução!

Já descobri o erro, eu coloquei _duracao e _temporadas nas classes