No método __str__
, o código apresentado está duplicado de certa forma, repetindo as informações de nome, ano e likes em cada subclasse. O melhor seria deixar esses atributos a cargo da superclasse Programa e nas subclasses Filme e Serie adicionar os atributos específicos. O código ficaria assim:
Programa
def __str__(self):
return f"{self.nome} - {self.ano} - {self._likes} likes"
Filme
def __str__(self):
return f"{super().__str__()} - {self.duracao}"
Serie
def __str__(self):
return f"{super().__str__()} - {self.temporadas}"