Ulrich Eckhardt, 03.09.2010 08:52:
Tim Wintle wrote:
[..] under the hood, cpython does something like this (in psudo-code)

itterator = xrange(imax)
while 1:
   next_attribute = itterator.next
   try:
     i = next_attribute()
   except:
     break
   a = a + 10

There is one thing that strikes me here: The code claims that each iteration
there is a lookup of the 'next' field in the iterator. I would expect that
this is looked up once before the loop only.

Can you confirm that or am I misinterpreting your intention here?

It needs to do that. Nothing keeps you from redefining "next" in each call. That's even a well known way to implement state machines.

However, as usual, the details are a bit different in CPython, which has a C level slot for the "next" method. So the lookup isn't as heavy as it looks.

Stefan

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to