# Classe programa
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'
# Classe filme
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}'
# Classe série
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}'
# Classe playliste
class Playlist:
def __init__(self, nome, programas):
self.nome = nome
self._programas = programas
@property
def listagem(self):
return self._programas
@property
def tamanho(self):
return len(self._programas)
# Atribuindo valores aos objetos filmes e séries
vingadores = Filme('vingadores - guerra infinita', 2018, 160)
atlanta = Serie('atlanta', 2018, 2)
tmep = Filme('Todo mundo em pânico', 1999, 100)
demolidor = Serie('Demolidor', 2016, 2)
vingadores.dar_like()
tmep.dar_like()
tmep.dar_like()
tmep.dar_like()
tmep.dar_like()
demolidor.dar_like()
demolidor.dar_like()
atlanta.dar_like()
atlanta.dar_like()
atlanta.dar_like()
filmes_e_series = [vingadores, atlanta, demolidor, tmep]
minha_playlist = Playlist('fim de semana', filmes_e_series)
for programa in minha_playlist.listagem:
print(programa)
print(f'Tamanho: {len(minha_playlist.listagem)}')
# Resultado
[Running]
Nome: Vingadores - Guerra Infinita - 160 min - Likes: 1
Nome: Atlanta - 2 temporadas - Likes: 3
Nome: Demolidor - 2 temporadas - Likes: 2
Nome: Todo Mundo Em P�nico - 100 min - Likes: 4
Tamanho: 4
[Done] exited with code=0 in 0.597 seconds
`