Using __repr__ or __str__ for own printable class?

Tim Peters at
Wed Apr 16 22:22:08 CEST 2003

[Donn Cave]
> But the idea that repr should be the function that conveys that
> "whole truth" is suspiciously consistent with the marshalling idea.

Indeed, the marshal module uses repr() to encode floats in code objects.
The idea behind __repr__ seems prettly clear in the docs:

    Called by the repr() built-in function and by string conversions
    (reverse quotes) 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.   This is typically used for
    debugging, so it is important that the representation is information-
    rich and unambiguous.

More information about the Python-list mailing list