class Programa:
    def __init__(self,nome,ano):
        self._nome = nome.title()
        self.ano =ano
        self._likes = 0
    @property
    def likes(self):
        return self._likes
    @property
    def nome(self):
        return self._nome
    def dar_like(self):
        self._likes += 1
    @nome.setter
    def nome(self,novo_nome):
        self._nome = novo_nome.title()
    def __str__(self):
        return f'{self._nome} - {self.ano} - {self._likes} Likes'
class Filme(Programa):
    def __init__(self,nome,ano,duracao):
        super().__init__(nome,ano)
        self.duracao = duracao
    def __str__(self):
        return f'Nome: {self._nome} - {self.duracao} min - Likes: {self._likes}'
class Serie(Programa):
    def __init__(self,nome,ano,temporadas):
        super().__init__(nome,ano)
        self.temporadas =temporadas
    def __str__(self):
        return f'Nome: {self._nome} - {self.temporadas} temporadas - Likes: {self._likes}'
vingadores = Filme('vingadores - guerra infinita', 2018, 160)
atlanta = Serie('atlanta', 2018, 2)
vingadores.dar_like()
vingadores.dar_like()
vingadores.dar_like()
atlanta.dar_like()
atlanta.dar_like()
listinha = [atlanta, vingadores]
for programa in listinha:
    print(f'Nome: {programa.nome} - Likes: {programa.likes}')
[Running]
Nome: Atlanta - Likes: 2
Nome: Vingadores - Guerra Infinita - Likes: 3
[Done] exited with code=0 in 0.407 seconds