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

o dar like nao processa

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()

class Filme: def init(self, nome, ano, duracao): self._nome = nome.title() self.ano = ano self.duracao = duracao self._likes = 0

class Serie: def init(self, nome, ano, temporadas): self._nome = nome.title() self.ano = ano self.temporadas = temporadas self._likes = 0

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

print(f'Nome: {vingadores._nome} - Ano: {vingadores.ano} - Duração: {vingadores.duracao} - Likes: {vingadores._likes}')

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

print(f'Nome: {atlanta._nome} - Ano: {atlanta.ano} - Temporadas: {atlanta.temporadas} - Likes: {atlanta._likes}')

quando coloco vingadores.dar_like() print(f'Nome: {vingadores._nome} - Ano: {vingadores.ano} - Duração: {vingadores.duracao} - Likes: {vingadores._likes}') e atlanta.dar_like() atlanta.dar_like() print(f'Nome: {atlanta._nome} - Ano: {atlanta.ano} - Temporadas: {atlanta.temporadas} - Likes: {atlanta._likes}')

esta dando este seguinte erro Traceback (most recent call last): File "C:\Users\CTC\PycharmProjects\playlist\md3.py", line 40, in vingadores.dar_like() ^^^^^^^^^^^^^^^^^^^ AttributeError: 'Filme' object has no attribute 'dar_like'

Como faço pra resolver?
1 resposta
solução!

A classe Filme está herdando de Programa?

Se não estiver, coloque na declaração da classe

class Filme(Programa):
    def __init__(self, nome, ano, duracao):
        super().__init__(nome, ano)
        self.duracao = duracao
        
    #segue o restante do código...

Como o método dar_likes() está na classe mãe, é preciso aplicar a herança para que ele possa usar esse método.