Oi Nicholas, tudo bem?
Entendo que o código possa parecer um pouco confuso à primeira vista, mas vamos esclarecer isso juntos.
A função __eq__
é um método especial em Python que é usado para comparar se dois objetos são iguais. No código que você compartilhou, estamos sobrescrevendo este método para definir o que significa para duas instâncias da classe ContaSalario
serem iguais.
A linha if(type(outro) != ContaSalario):
está verificando se o objeto outro
que estamos comparando é uma instância da classe ContaSalario
. Se não for, o método retorna False
. Isso significa que, se tentarmos comparar uma ContaSalario
com qualquer outro tipo de objeto (uma string, um número, uma lista, etc.), o método dirá que eles não são iguais, o que faz sentido, pois estamos definindo igualdade no contexto de uma ContaSalario
.
Agora, se outro
for uma ContaSalario
, nós prosseguimos para a linha return self._codigo == outro._codigo and self._saldo == outro._saldo
. Aqui estamos dizendo que duas ContaSalario
são iguais se, e somente se, seus códigos e saldos forem iguais.
A ideia aqui é que estamos personalizando o que significa igualdade para a nossa classe ContaSalario
.
Espero que tenha te ajudado.
Um abraço e bons estudos.