Alan Morgan wrote: > In article <[EMAIL PROTECTED]>, > Giovanni Bajo <[EMAIL PROTECTED]> wrote: >>Steve R. Hastings wrote: >> >>>> in Python 2.X, range is defined to return a list. if you start >>>> returning something else, you'll break stuff. >>> >>> Perhaps I'm mistaken here, but I don't see how this optimization could >>> possibly break anything. >> >>Because you assume that the only use-case of range() is within a for-loop. >>range() is a builtin function that can be used in any Python expression. For >>instance: >> >>RED, GREEN, BLUE, WHITE, BLACK = range(5) > > Hmmm, this worked fine when I used xrange as well. Am I missing something? > Obviously there *are* differences, viz:
Just _look_ at the objects: >>> range(5) [0, 1, 2, 3, 4] >>> xrange(5) xrange(5) >>> range is giving you a real list, while xrange is giving you an xrange object. Have you tried to slice an xrange object? Or using .append on it? Georg -- http://mail.python.org/mailman/listinfo/python-list