1
resposta

Não entendo como o Renato acertou

Testei o método do Renato, realmente funcionou. No entanto, em um curso anterior, foi ensinado que a marcação __ (duplo underline) antes do método fazia com que a chamada da classe se tornasse diferente. No caso, esperava que o Renato escrevesse o método da seguintes forma:

extrator_url_dri.ExtratorUrl.__eq__(extrator_url_re).
1 resposta

Olá Walmor, tudo bem com você?

O método __eq__ é um método especial do Python, que pode adicionar a funcionalidade de igualdade em uma classe quando implementado nessa classe, ou podemos fazer o uso diretamente em dois objetos para comparar se são iguais.

Conforme a documentação do Python sua sintaxe de uso para compararmos dois objetos é conforme abaixo:

objeto1.__eq__(self, objeto2)

Os métodos especiais vão possuir duplo underscore no início e no final do seu nome e o uso será como apresentado acima. Note que no exemplo da atividade a resposta apresentada pelo Renato possui a mesma sintaxe.

extrator_url_dri.__eq__(extrator_url_re)

Um exemplo de uso, comparando duas variáveis com valores diferentes salvos.

numero1 = 10
numero2 = 115

print(numero1.__eq__(numero2))

Resultado

False

Em resumo temos que, o “Renato” apresentou uma sintaxe correta por está fazendo o uso direto de um método especial do Python, sua sintaxe de uso é diferente da presente quando queremos acessar métodos privados.

Para saber um pouco mais sobre o método __eq__ e sua comparação com o == como apresentado no exercício, recomendo a leitura do seguinte artigo.

O artigo acima está em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.

Em caso de dúvidas, encontro-me à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!