1
resposta

@limite.setter dá erro

Esta dando erro no @limite.setter, fala que limite não esta definido.

'NameError: name 'limite' is not defined'
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 de R${} na conta do {}'.format(self.__saldo, self.__titular))

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

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

    def transfere(self,valor, destino):
        self.saque(valor)
        destino.deposita(valor)

    @property
    def saldo(self):
        return self.__saldo

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

    @limite.setter
    def limite(self, limite):
        self.__limite = limite
1 resposta

Oii Eduardo, como você está? Espero que esteja bem ^-^

Sinto muito pela demora em obter um retorno.

Isso está acontecendo porque toda vez que definimos um setter, obrigatoriamente temos que ter uma property(getter) antes. E isso porque quando fazemos @limite.setter esse @limite referencia a property que possui esse nome.

Então para corrigir esse erro basta adicionar uma property de limite em seu código. Veja:

   @property
    def limite(self):
        return self.__limite

    @limite.setter
    def limite(self, limite):
        self.__limite = limite

Após essa modificação o código deverá funcionar corretamente.

Qualquer dúvida estou por aqui, tá bom?

Grande abraço!