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?