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

Erro ao usar mais de uma propriedade setter

Notei que ao tentar implementar uma propriedade setter para um atributo (Nesse caso o atributo numero) que não foi relacionado a uma propriedade getter resulta em um erro de referência (Unresolved reference). Pq isso ocorre?

class Conta:

    def __init__(self, numero, titular, saldo, limite):
        print("Construindo objeto ... {}".format(self))
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite

    def extrato(self):
        print("Saldo {} do titular {}".format(self.__saldo, self.__titular))

    def deposita(self, valor):
        self.__saldo += valor

    def saca(self, valor):
        self.__saldo -= valor

    def transfere(self, valor, origem, destino):
        origem.saca(valor)
        destino.deposita(valor)

    @property
    def saldo(self):
        print("Executando propriedade conta")
        return self.__saldo

    @property
    def titular(self):
        return self.__titular

    @property
    def limite(self):
        print("Executando propriedade limite")
        return self.__limite

    @limite.setter
    def limite(self,limite):
        print("Executando propriedade setter limite")
        self.__limite = limite

    @numero.setter
    def numero(self,numero):
        self.__numero=numero
1 resposta
solução!

Olá Vinícius,

Para criar um setter você tem que definir o @property equivalente antes:

@property
def numero(self):
    return self.__numero

Nesse outro tópico o Igor explicou melhor sobre isso.

Espero ter ajudado, qualquer dúvida é só falar!