[Python-ideas] automation of __repr__/__str__ for all the common simple cases

Nick Coghlan ncoghlan at gmail.com
Thu Feb 16 01:03:38 CET 2012


On Thu, Feb 16, 2012 at 1:34 AM, Nathan Rice
<nathan.alexander.rice at gmail.com> wrote:
> I think that a generic __repr__ has been reinvented more times than I
> can count.  I don't think a generic __str__ is a good thing, as it is
> supposed to be a pretty, semantically meaningful.  I don't really see
> anywhere in the standard library that such a feature would make sense
> though.

Python 3's reprlib already provides some tools for writing
well-behaved __repr__ implementations (specifically, the
reprlib.recursive_repr decorator that handles cycles in container
representations).

I actually have a recipe for simple "cls(arg1, arg2, arg3)" style
__repr__ output on Stack Overflow:
http://stackoverflow.com/questions/7072938/including-a-formatted-iterable-as-part-of-a-larger-formatted-string

> There is a similar recipes in SQL Alchemy, and I've seen them in a few
> other popular libs that I can't remember off the top of my head.

The unfortunate part of dict-based __repr__ implementations is that
the order of the parameter display is technically arbitrary.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia



More information about the Python-ideas mailing list