Acabei me empolgando e fiz um método pra saber o histórico como em um extrato convencional, substitui o self.extrato( ) por self.saldo( ) para saber o saldo da conta, fiz uma atributo a mais chamado memoria que guarda o histórico da conta. Fazendo isso não posso mais usar self.saque( ) nem self.deposito dentro da transferência, pois eles guardariam na memoria itens a mais do que o esperado, agora o que pareceu mais organizado foi recriar eles dentro da transferência, na minha cabeça pelo menos. Gostaria de saber qual e mais organizado na opinião de alguém mais experiente, recriar isso fora ou dentro da Transferência, ou usar outro método pra isso.
class Conta:
def __init__(self, numero, titular, saldo, limite):
self.__numero = numero
self.__titular = titular
self.__saldo = saldo
self.__limite = limite
self.__memoria = []
def guardar_namemoria(self, item):
self.__memoria.append(item)
def saldo(self):
print(f'O saldo de {self.__titular} e de {self.__saldo}')
def extrato(self):
x = 0
for historico in self.__memoria:
x += 1
print(x, historico)
self.saldo()
def deposita(self, valor):
self.__saldo += valor
self.__memoria.append(f"Deposito realizado {valor}")
def saque(self, valor):
if valor > self.__limite:
print("Saque negado, ultrapassa o limite")
else:
self.__saldo -= valor
self.__memoria.append(f"Saque realizado {valor}")
def tranasferir(self, valor, destino):
if self.__saldo > valor > self.__limite:
print("Saque negado, ultrapassa o limite")
else:
# sacando valor da conta que transferiu
self.__saldo -= valor
self.__memoria.append(f"Voce transferiu {valor} para {destino.__titular}")
#dando o valor para outra conta
destino.__saldo += valor
destino.__memoria.append(f"Recebeu {valor} de {self.__titular}")