2
respostas

[Dúvida] O Other que não quer calar!

Essa pergunta já foi feita e respondida, porem ainda persiste uma duvida.

Como que o valor do objeto "extrator_url_2" foi parar dentro do other, se ele não foi declarado dentro do código?

def __eq__(self, other):
        return self.url == other.url

url = "bytebank.com/cambio?quantidade=100&moedaOrigem=real&moedaDestino=dolar"
extrator_url = ExtratorURL(url)
extrator_url_2 = ExtratorURL(url)

Na minha opinião, caso eu possa estar correta! É que foram instanciados dois objetos "extrator_url" e "extrator_url_2", e como a execução é feita linha após linha, o other assume que o segundo valor a ser comparado é o "extrator_url_2" que é o próximo elemento na fila/linha de execução, já que o primeiro já foi passado pelo self. Mesmo que esse valor não tenha sido declarado anteriormente.

É mais ou menos isso?

2 respostas

Olá, Polyana! O objeto "other" é passado como parâmetro para o método "eq" que é utilizado para comparar se dois objetos são iguais. Quando você compara dois objetos utilizando o operador "==", o Python chama automaticamente o método "eq" para realizar a comparação.

No seu exemplo, o objeto "extrator_url_2" é passado como parâmetro para o método "eq" quando você faz a comparação "extrator_url == extrator_url_2". O objeto "other" é apenas uma referência para o objeto "extrator_url_2" dentro do método "eq".

Espero ter ajudado a esclarecer sua dúvida! Bons estudos!

Olá. boa noite.

Acredito que o Nico tenha lhe respondido, mas tentando deixar um pouco mais simples...

Quando comparamos alguma coisa precisamos ter outra para ser paramêtro, ou seja: sempre comparamos duas coisas. Uma será o self e a outra o other (que terá que ser declarado como parâmetro na função => def eq (self, other)).

Espero ter contribuído juntamente com nosso mestre!