Bom dia.
Neste exemplo do modelo.py, durante a aula 3.04 (Reduzindo IFs) criamos três métodos imprime: um na classe Programa, um na classe Filme e um na classe Serie.
Pelos testes que efetuei não havia a necessidade do método na superclasse Programa, visto que os dados desta classe existem nas duas classes filhas (herança), além dos atributos duração (classe Filme) ou temporada (classe Serie) (extender).
Incluir na classe Programa um atributo, por exemplo, usuário (quem cadastrou o filme e/ou temporada, por exemplo) ou a data da inclusão na playlist, etc e imprimir na playlist para imprimir na playlist.
Nos testes efetuados, não houve necessidade do método imprimir() na classe Programa, o que inicialmente achei que seria necessário.
Qual a explicação disto?
======================== class Programa: def init(self, nome, ano): self.nome = nome.title() self.ano = ano self.likes = 0 self._usuario = "Fulano de Tal"
@usuario.setter
def nome(self, usuario):
self._usuario = 'Fulano de Tal'
class Filme(Programa): def init(self, nome, ano, duracao): super().init(nome, ano) self.duracao = duracao
def imprime(self):
print(f'Filme: {self._nome} - Ano: {self.ano} - Duração: {self.duracao} min - Likes: {self._likes} likes - Usuário: {self.usuario}')
class Serie(Programa): def init(self, nome, ano, temporadas): super().init(nome, ano) self.temporadas = temporadas
def imprime(self):
print(f'Serie: {self._nome} - Ano: {self.ano} - Temporadas: {self.temporadas} - Likes: {self._likes} likes - Usuário: {self.usuario}')
....
for programa in filmes_e_series:
programa.imprime()
==========================