Fiz um incremento no código para que o programa checasse o saldo antes de autorizar ou nao um saque. Legal, funcionou.
Porem na hora de fazer a transferencia (que seria as funções saque e deposito em série) o código nao serve. Então eu criei uma variavel bool, cujo valor seria em função do sucesso do saque, MAS nao estou conseguindo trazer essa variavel pra função "transfere". Ja tentei o return, ja tentei declarar a variavel no def da função, porem não vai. Como faço isso?
class Conta:
def __init__(self, numero, titular, saldo, limite):
print("Constuindo objeto...{}" .format(self))
self.__numero = numero
self.__titular = titular
self.__saldo = saldo
self.__limite = limite #informar o numero sempre negativo
def extrato(self):
print ("O saldo da conta {} é {}" .format(self.__numero, self.__saldo))
def deposita(self, valor):
self.__saldo += valor
print("Depositado o valor de {} na conta {}. O saldo agora é de {}" .format(valor, self.__numero, self.__saldo))
def saca(self, valor):
novo_saldo = self.__saldo - valor
if novo_saldo >= 0:
self.__saldo -= valor
print("Retirado o valor de {} na conta {}. O saldo agora é de {}." .format(valor, self.__numero, self.__saldo))
saca_sucesso = True
elif (novo_saldo < 0 and novo_saldo >= self.__limite):
self.__saldo -= valor
print("Retirado o valor de {} na conta {}. O saldo agora é de {} e voce está utilizando o valor limite de máximo até {}." .format(valor, self.__numero,self.__saldo, self.__limite))
saca_sucesso = True
else:
valor_max = self.__saldo + abs(self.__limite)
print("Valor não disponível para saque. O seu saldo atual é de {} e o saque maximo é de {}" .format(self.__saldo, valor_max))
saca_sucesso = False
return saca_sucesso
def transfere(self, valor, destino):
self.saca(valor)
if saca_sucesso == True:
destino.deposita(valor)
else:
print("Deposito fracassou. Verificar")