Olá Guilherme, tudo certo?
Adorei seus comentários, parabéns pela observação =)
No último comentário, acredito que ele apenas deposita o valor, já que a taxa fica com o banco para que ele faça a transação
Além disso, seria interessante "esconder" a função temSaldoDisponivelPara entre underlines, já que seu uso é apenas interno e ela não precisa ser mostrada na interface pública da classe
class Conta:
def __init__(self, numero, saldo, limite):
self.__numero = numero
self.__saldo = saldo
self.__limite = limite
self.__tarifaTransferencia = 8.0
def __tem_Saldo_Disponivel_Para__(self, valor):
return valor <= (self.__saldo + self.__limite)
def saca(self, valor):
if self.__tem_Saldo_Disponivel_Para__(valor):
self.__saldo -= valor
print("Saque efetuado.")
else:
print("Saldo insuficiente.")
def transfere(self, valor, destino):
valorTotal = valor + self.__tarifaTransferencia
if self.__tem_Saldo_Disponivel_Para__(valorTotal):
self.__saldo -= valorTotal
destino.deposita(valor) # Aqui ele poderia colocar destino.deposita(valorTotal), pois já pegaria a soma do valor com a taxa.
print("Transferência efetuada.")
else:
print("Saldo insuficiente.")
O código ficou assim, o que acha?
Bons estudos e até logo