Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao trabalhar com a lista de contas

Seguindo o desenvolvimento dos exercicios feitos em aula cheguei a uma estranha constatação, depois de criar uma tupla que continua dois objetos do tipo conta, as referencias das contas se voltaram para o mesmo objeto:

class ContaCorrente:
  def __init__(self, codigo):
    self.codigo = codigo
    self.saldo = 0

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

  def __str__ (self):
    return "[>>Codigo {} Saldo {}<<]".format(self.codigo, self.saldo)

conta = ContaCorrente(15)
conta2 = ContaCorrente(4768)
conta2.deposita(200)

contas = (conta, conta2)

for conta in contas: 
  print(conta)  #aqui o print gera [>>Codigo 15 Saldo 0<<] e [>>Codigo 4768 Saldo 200<<]

#Até aqui tudo ok, mas ao fazer
#print (conta) e print(conta2) obtenho o mesmo valor impresso duas vezes [>>Codigo #4768 Saldo 200<<]

 #Verifiquei o endereço na memoria e tanto conta quanto conta2 estão apontando para o #mesmo objeto
2 respostas
solução!

Nevermind descobri o que eu fiz errado, como a variavel que eu usei para fazer a leitura de contas tem o nome conta, ela terminou o loop referenciando a conta2, e por isso conta e conta2 referenciam o mesmo objeto

Legal Ricardo, marca a sua resposta como solução para que ela saia da lista de respostas sem solução do fórum.