1
resposta

AttributeError: 'Conta' object has no attribute '_saldo'

O meu código está dando o erro abaixo, podem me ajudar?

AttributeError: 'Conta' object has no attribute '_saldo'

Código:

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 {} do titular {}".format(self.__saldo, self.__titular))

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

    def saca(self, valor):
        if(valor <= (self._saldo + self.__limite)):
            self.__saldo -= valor
        else:
            print("O valor {} passou o limite".format(valor))

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

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

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

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

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

Oi Caroline, tudo bem?

É um pequeno errinho no if da função saca, pois você está chamando: self._saldo com um underscore apenas. Porém a variável saldo é definida com dois underscore. Basta então modificar de self._saldo para self.__saldo.

Qualquer dúvida é só falar. Abraços e bons estudos!