Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Usando o __eq__

Vimos que podemos usar o eq para comparar contas e verificar que conta1 == conta2 . Porém ao depositar um valor na conta1, por exemplo, a igualdade deixa de valer. Porém e se no meu programa eu queira que contas com o mesmo código sejam iguais (nesse caso digitar contas com códigos iguais seria um erro de usuário que duplicou as contas. Ou ainda, contas com códigos iguais não poderiam existir/ seriam automaticamente transformadas em uma mesma conta) e ao depositar na conta1 a conta2 automaticamente receba esse depósito e a igualdade conta1 == conta2 permaneça (por terem o mesmo código e estarem na mesma classe). É possível fazer isso?

1 resposta
solução!

Olá, Rafael.

Não entendi muito bem se está querendo permitir ou não a criação de contas com o mesmo código.

No primeiro caso, basta implementar algo durante o construtor da classe (init), para que ele faça a validação e o tratamento dos dados.

No segundo caso, não sei qual seria o motivo para fazer isso, mas você poderia ter duas instâncias (conta1 e conta2), apontando para o mesmo endereço de memória. Na realidade, as alterações (depósitos, por exemplo), só vão ocorrer em um lugar. Ou seja, só foi criada uma conta.

conta1 = ContaSalario(1)
conta2 = conta1

print("Saldo inicial da 1º instância: ", conta1._saldo) #Saldo inicial da 1º instância:  0
print("Saldo inicial da 2º instância: ", conta2._saldo) #Saldo inicial da 2º instância:  0

conta1.deposita(100)

print("Saldo final da 1º instância: ", conta1._saldo) #Saldo final da 1º instância:  100
print("Saldo final da 2º instância: ", conta2._saldo) #Saldo final da 2º instância:  100

Consegui te ajudar?

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software