from random import randint
class Programa:
def __init__(self, nome, ano):
self.nome = nome
self.ano = ano
self._n_likes = 0
@property
def nome(self):
return self.__nome
@property
def n_likes(self):
return self._n_likes
@nome.setter
def nome(self, nome):
self.__nome = nome.title()
def like(self):
self._n_likes += 1
def __str__(self):
return f'{self.nome} ({self.ano}): {self.n_likes} likes'
class Filme(Programa):
def __init__(self, nome, ano, duracao):
super().__init__(nome, ano)
self.duracao = duracao
def __str__(self):
return f'{self.nome} ({self.ano}) - {self.duracao} min: {self.n_likes} likes'
class Serie(Programa):
def __init__(self, nome, ano, n_temporadas):
super().__init__(nome, ano)
self.n_temporadas = n_temporadas
def __str__(self):
return f'{self.nome} ({self.ano}) - {self.n_temporadas} temporadas: {self.n_likes} likes'
class Playlist:
def __init__(self, nome, programas):
self.nome = nome
self.programas = programas
def tamanho(self):
return len(self.programas)
star_wars = Filme('Star Wars: A New Hope', 1977, 121)
svu = Serie('Law & Order: SVU', 1999, 23)
harry_potter = Filme('Harry Potter & The Deathly Hallows Pt 2', 2011, 130)
got = Serie('Game of Thrones', 2011, 8)
filmes_e_series = [star_wars, svu, harry_potter, got]
for programa in filmes_e_series:
for _ in range(randint(1, 100)):
programa.like()
playlist_weekend = Playlist('Fim de Semana', filmes_e_series)
for programa in playlist_weekend.programas:
print(programa)
Para cada programa eu escolho um número aleatório de 1 a 100 e passo no range de um for interno. Aí para cada iteração desse for interno programa adiciona +1 like.