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

[Dúvida] A diferença entre __repr__ e __str__ está apenas na implementação?

Dei uma olhada nos tópicos anteriores e em alguns outros artigos, mas ainda não consegui ter certeza do seguinte: a diferença efetiva entre os dois métodos está na implementação que deve ser feita, como uma "boa prática"?.

Quero dizer, se eu implementar ambos os métodos na minha classe de forma indêntica, o resultado é idêntico; ou seja, como "boa prática", um desenvolvedor deve deixar para o método str a forma user friendly e o repr algo como um log do objeto, para que cada método seja invocado no momento certo sem precisar de grandes análises das classes antes?

1 resposta
solução!

Olá, Luis. Tudo bem?

O seu entendimento sobre a diferença entre o __str__ e o __repr__ está certa.

Se olharmos na documentação oficial do Python, la nos informa que geralmente o __repr__ é utilizado para debugging, assim é importante que a representação feita por esse método seja rica em informações e inequívoca. Assim, esse método traz informações relevantes sobre o objeto para quem está escrevendo o código. Já o __str__ nos traz uma representação mais informal, onde a exibição em formato de string do objeto é mais agradável.

Desse modo, podemos considerar que é uma boa prática utilizar o __repr__ para gerar a representação em string do objeto para a pessoa desenvolvedora, e o __str__ para gerar uma representação em string do objeto para o usuário final.

Caso queira entender melhor os detalhes entre os dois métodos, deixo como recomendação a leitura da documentação oficial do Python sobre eles:

Espero ter ajudado. Qualquer dúvida estou a disposição.

Abraços. Bons estudos!

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