Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Conferência/Python3-avançado OO, Mão na massa

Segue o código:

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

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

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

    @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'Nome: {self._nome} - Ano: {self.ano} - Duração: {self.duracao} min - Likes: {self._likes}'

class Serie(Programa):
    def __init__(self, nome, ano, temporadas):
        super().__init__(nome, ano)
        self.temporadas = temporadas

    def __str__(self):
       return f'Nome: {self._nome} - Ano: {self.ano} - Temporadas: {self.temporadas} - Likes: {self._likes}'

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)

vingadores = Filme('vingadores - guerra infinita', 2018, 160)
vingadores.dar_likes()
vingadores.dar_likes()
vingadores.dar_likes()

o_iluminado = Filme('o iluminado', 1980, 160)
o_iluminado.dar_likes()
o_iluminado.dar_likes()
o_iluminado.dar_likes()
o_iluminado.dar_likes()
o_iluminado.dar_likes()

atlanta = Serie('atlanta', 2018, 2)
atlanta.dar_likes()
atlanta.dar_likes()

braking_bad = Serie('braking bad', 2008, 5)
braking_bad.dar_likes()
braking_bad.dar_likes()
braking_bad.dar_likes()
braking_bad.dar_likes()
braking_bad.dar_likes()

filmes_e_series = [vingadores, atlanta, braking_bad, o_iluminado]
playlist_fim_de_semana = Playlist('fim de semana', filmes_e_series)

print(f'Tamanho da Playlist: {len(playlist_fim_de_semana.listagem)}')

for programa in playlist_fim_de_semana.listagem:
    print(programa)
1 resposta
solução!

Olá Manuel, tudo bem?

Fico feliz em acompanhar seu desenvolvimento junto a Alura, o código apresentado está correto, conforme o proposto na aula.

Quero aproveitar a oportunidade e recomendar o seguinte artigo, onde é apresentado com detalhes sobre o uso da herança em Python.

O artigo acima está em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.

Lembre-se que pode contar sempre com o fórum Alura, seja para postar o seu desenvolvimento ou para tirar suas dúvidas.

Fico à disposição.

Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software