grocery_stocker wrote: > Okay, I was thinking more about this. I think this is also what is > irking me. Say I have the following.. > >>>> a = [1,2,3,4] >>>> for x in a: > ... print x > ... > 1 > 2 > 3 > 4 >>>> > > Would 'a' somehow call __iter__ and next()? If so, does python just > perform this magically?
and the same is true when you use yield: >>> def count(): ... c = 0 ... while c < 4: ... yield c ... c += 1 ... >>> for i in count(): print i ... 0 1 2 3 >>> x = count() >>> dir(x) ['__class__', '__delattr__', '__doc__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', 'close', 'gi_frame', 'gi_running', 'next', 'send', 'throw'] >>> i = x.__iter__() >>> i.next() 0 >>> i.next() 1 andrew -- http://mail.python.org/mailman/listinfo/python-list