I was looking at the range
function and an online search shows that (EDIT: in 2.x) it's eagerly evaluated
>>> range(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
However when I try the code below in my local Python3.3 interpreter
a = range(10)
print(a)
I get an output
range(0, 10)
That's something I'd expect from a lazy evaluated function, what's the case ?
Note : In Python2.7 it always behaves as eagerly evaluated.