Assim como o colega Lucas, a implementação da função "saca" com a verificação do limite retornou erro que o objeto tuple não tem atributo "saca". O código está colado em sua integridade.
O terminal está da seguinte maneira:
from conta import Conta
conta = (123, "Guilheme", 122.3, 1000.0)
conta.saca(1200.0)
Traceback (most recent call last):
File "", line 1, in
AttributeError: 'tuple' object has no attribute 'saca'
class Conta:
def __init__(self, numero, titular, saldo, limite):
print("Contruindo 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 pode_sacar(self, valor_a_sacar):
# valor_disponivel = self.__saldo + self.__limite
# return valor_a_sacar <= valor_disponivel
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