+ 3
The different between __str__ and __repr__ on Python3
did you know the different between __str__ and __repr__ on Python3?
3 Answers
+ 2
Here is a code you can play with and see the differences:
https://code.sololearn.com/ch7OpLKai1Z7/?ref=app
EDITED:
This is what the official documentation says:
object.__repr__(self)
built-in function to compute the âofficialâ string representation of an object. If at all possible, this should look like a valid Python expression that could be used to recreate an object with the same value (given an appropriate environment). If this is not possible, a string of the form <...some useful description...> should be returned. The return value must be a string object. If a class defines __repr__() but not __str__(), then __repr__() is also used when an âinformalâ string representation of instances of that class is required.
This is typically used for debugging, so it is important that the representation is information-rich and unambiguous.
object.__str__(self)
to compute the âinformalâ or nicely printable string representation of an object. The return value must be a string object.
This method differs from object.__repr__() in that there is no expectation that __str__() return a valid Python expression: a more convenient or concise representation can be used.
The default implementation defined by the built-in type object calls object.__repr__().
+ 3
Thank you everyone, especially to @Ulisses Cruz
+ 1
__str__ return byte string, while __repr__ return unicode (utf8) string...