Pop quiz: how would you implement Python's
xrange (known in Python 3.x as
range) in Python and without making a list or any other sequence type?
If you answered "with a generator," you'd be wrong! And it's likely because you've only ever used an
xrange in code like:
for i in xrange(10): # do something 10 times
In this case (where the
xrange is only used as an "argument" to a
for loop), a generator would probably suffice. But, in fact,
xrange is implemented as an object, not a function or generator. Why? Let's find out.