Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Importância e objetivos do método __str__ ao definir uma exceção

No capítulo sobre exceções foi apresentada a classe ArgumentoInvalidoErro com um método chamado __str__, contudo não foram explicadas a importância e o objetivo deste. Em razão disto pergunto: o método é essencial na definição de exceções ou foi usado de forma didática? Qual o seu objetivo?

3 respostas
solução!

Se você imprime um objeto, o __str__ é usando por debaixo dos panos para exibir esse objeto. É algo semelhante ao toString na linguagem Java.

Ok, Flávio. Imaginei que o objetivo do método fosse esse mesmo. O uso no exemplo, se deu então com objetivos didáticos, ou seja, não há a obrigatoriedade da implementação do mesmo na definição de uma exceção. Estou certo? Outra curiosidade é sobre o função repr() definido dentro de __str__. O que ele faz?

Oi Geison, o repr é usando pelo depurador (debugger) do Python, então, quando você está depurando um código o resutlado de repr será usado pelo debugger para apresentar o objeto para você.