[Python-Dev] Re: More int/long integration issues
Fri, 21 Mar 2003 09:43:36 -0500
Guido van Rossum <firstname.lastname@example.org> writes:
>> Guido van Rossum <email@example.com> writes:
>> > The bytecode compiler should be clever enough to see that you're
>> > writing
>> > for i in range(...): ...
>> > and that there's no definition of range other than the built-in one
>> > (this requires a subtle change of language rules); it can then
>> > substitute an internal equivalent to xrange().
>> Ouch! What happens to:
>> def foo(seq):
>> for x in seq:
>> foo(xrange(small, really_big))
>> if xrange dies??
> Good point. I guess xrange() can't die until range() becomes an
> iterator (which can't be before Python 3.0).
> Hm, maybe range() shouldn't be an iterator but an interator
> generator. No time to explain; see the discussion about restartable
I think what you mean is fairly obvious. list et al. are iterator
generators, right? It's just a thing with an __iter__ function which
produces an iterator?
If so, I tend to agree that's the right behavior for range().
range(x,y,z) should be an immutable object.