[Python-Dev] Proposed iterator representations
Armin Rigo
arigo at tunes.org
Sat Apr 10 07:22:17 EDT 2004
Hello Raymond,
On Thu, Apr 08, 2004 at 10:37:18PM -0400, Raymond Hettinger wrote:
> I checked in two itertool representations that were clear-cut:
>
> >>> from itertools import count, repeat
> >>> count(20)
> count(20)
> >>> repeat(None, 12)
> repeat(None, 12)
Another point of view is that these representation are not very informative if
you don't already know count() and repeat(): someone will probably type the
above code in order to experiment with them, and the repr doesn't help in this
respect. I think I'd prefer a more standard representation for all the
iterators for which it is reasonably possible to do so.
>>> count(20)
<itertools.count: 20, 21, 22, ...>
>>> repeat(None, 12)
<itertools.repeat: None, None, None, ... 12 elements>
>>> iter(xrange(10, 20, 2))
<rangeiterator: 10, 12, 14, ... 5 elements>
A bit of effort should be made at showing the nicest answer, e.g.:
>>> iter(xrange(0))
<rangeiterator: empty>
>>> iter(xrange(1))
<rangeiterator: 0>
>>> iter(xrange(2))
<rangeiterator: 0, 1>
>>> iter(xrange(3))
<rangeiterator: 0, 1, 2>
>>> iter(xrange(4))
<rangeiterator: 0, 1, 2, 3>
>>> iter(xrange(5))
<rangeiterator: 0, 1, 2, ... 5 elements>
Armin
More information about the Python-Dev
mailing list