[Python-Dev] xrange vs generators
Guido van Rossum
guido@digicool.com
Mon, 25 Jun 2001 12:11:10 -0400
> [ xrange can't be changed into a generator ]
>
> > This is too bad; I really wish that xrange() could die or be limited
> > entirely to for loops. I wonder if we could put warnings on xrange()
> > uses beyond the most basic...?
>
> Why do we want to do this ? xrange() is still exactly what it was: an object
> that pretends to be a list of integers. Besides being useful for those who
> work a lot with ranges, it's a wondeful example on what you can do with
> Python (even if it isn't actually written in Python :-)
There is exactly *one* idiomatic use of xrange():
for i in xrange(...): ...
All other operations supported by the xrange object are very rarely
used, and historically their implementation has had obvious bugs that
no-one noticed for years.
> I see less reason to deprecate xrange than to deprecate the gopherlib,
> wave/aifc/audiodev, mhlib, netrc and/or robotparser modules.
Those are useful application-area libraries for some folks.
The idiomatic xrange() object is useful too.
But the advanced features of xrange() are an example of code bloat.
--Guido van Rossum (home page: http://www.python.org/~guido/)