[Python-3000] Removing repr
John J Lee
jjl at pobox.com
Thu Apr 6 16:02:36 CEST 2006
On Thu, 6 Apr 2006, Michael P. Soulier wrote:
[...]
> I thought that the distinction was as follows.
>
> str() should return a human-readable representation of something.
>
> repr() should return a machine-readable representation of something, suitable
> for an exec command.
[...]
Is this old chestnut really still around? repr() is for debugging; it
does not have to return an eval()-able string. The __repr__ docs explain
that well.
Perhaps the documentation for repr() is still partly to blame for this
confusion. It says:
"""
Return a string containing a printable representation of an object. This
is the same value yielded by conversions (reverse quotes). It is sometimes
useful to be able to access this operation as an ordinary function. For
many types, this function makes an attempt to return a string that would
yield an object with the same value when passed to eval().
"""
I suggest (for Py3k, anyway):
"""
Return a string containing a printable representation of an object. This
is useful for debugging. Often, this function returns a string of the
form "<...some useful description...>". For some types, this function
returns a string that would yield an object with the same value when
passed to eval().
"""
> That still has value, no?
I find the 'debug string' / 'human-readable string' distinction valuable.
John
More information about the Python-3000
mailing list