1
resposta

Mãos na massa

class Programa:

def __init__(self, nome, ano):
    self._nome = nome.title()
    self.ano = ano
    self._likes = 0

def dar_likes(self):
    self._likes += 1

@property
def likes(self):
    return self._likes

@property
def nome(self):
    return self._nome

@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"{self._nome} - {self.ano} - {self.duracao} min - {self._likes} Likes"

class Serie(Programa):

def __init__(self, nome, ano, temporada):

    super().__init__(nome, ano)

    self.temporada = temporada

def __str__(self):
    return f"{self._nome} - {self.ano} - {self.temporada} temporadas - {self._likes} Likes"

class Playlist:

def __init__(self, nome, programas):

    self.nome = nome

    self._programas = programas


def __getitem__(self, item):
    return self._programas[item]


def __len__(self):

    return len(self._programas)

@property
def listagem(self):

    return self._programas

vingadores = Filme("vingadores - guerra infinita", 2018, 160)

atlanta = Serie("atlanta", 2020, 2)

tmep = Filme("todo mundo em pânico", 1999, 100)

demolidor = Serie("demolidor", 2016, 2)

vingadores.dar_likes() vingadores.dar_likes() tmep.dar_likes() demolidor.dar_likes() atlanta.dar_likes()

filmes_e_series = [vingadores, atlanta, tmep, demolidor] playlist_fds = Playlist("Fim de semana", filmes_e_series)

print(f"Tamanho da Playlist: {playlist_fds}")

for programa in playlist_fds:

print(programa)
1 resposta

Fala, Marcelo! Tudo bem?

Muito bom!

Nosso programa está evoluindo e desta vez aprendemos mais sobre duck typing, Python data, dunder methods e o uso de ABCs.

Caso tenha ficado com alguma dúvida não deixe de compartilhar aqui pelo fórum.

Bons estudos.

Até mais!