1
resposta

[Dúvida] Porque ao tirar os _ do self._nome e self._likes resulta em um bug ??

quando eu retiro os _ dentro da classe Programa, o meu pycharm resulta em um erro de recursão, gostaria de entender o por que

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(Programa):
    def __init__(self, nome, ano, duracao):
        super().__init__(nome, ano)
        self.duracao = duracao

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


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

atlanta = Serie('atlanta', 2018, 2)
print(f'Nome: {atlanta.nome} - Ano: {atlanta.ano}')
1 resposta

Pelo o que eu testei aqui, se você tirar o _ do self.likes vai dar conflito com a @property likes, pelo fato de eles terem o mesmo nome, é só você mudar o nome da sua property que ta tudo certo!