On Tue, Jan 27, 2009 at 2:06 PM, Oleg Broytmann <phd@phd.pp.ru> wrote:
On Tue, Jan 27, 2009 at 01:46:35PM -0800, Raymond Hettinger wrote:
<enumerate object: 'A', 'B', 'C', 'D', 'E', 'F'>
I like the idea, and I prefer this formatting. Also bear in mind there are infinite generators, and there are iterators that cannot be reset. For infinite generators pprint() must have a parameter, say, 'max_items', and print <generator: 'A', 'B', 'C', 'D', 'E', 'F', ...>. The situation with iterators that cannot be reset should be documented.
This pretty much kills the proposal. Calling a "print" function like pprint() should not have a side effect on the object being printed. I'd be okay of pprint() special-cased the views returned by e.g. dict.keys(), but if all we know is that the argument has a __next__ method, pprint() should *not* be calling that. -- --Guido van Rossum (home page: http://www.python.org/~guido/)