What makes an iterator an iterator?
steve at REMOVE.THIS.cybersource.com.au
Thu Apr 19 09:14:38 CEST 2007
On Wed, 18 Apr 2007 19:45:50 -0700, Alex Martelli wrote:
> 7stud <bbxx789_05ss at yahoo.com> wrote:
>> Can you explain some of the details of why this code fails:
>> def next(self):
>> for word in "Norwegian Blue's have beautiful
>> yield word
> Sure, easily: a loop like "for x in y:" binds an unnamed temporary
> variable (say _t) to iter(y) and then repeatedly calls _t.next() [or to
> be pedantic type(_t).next(t)] until that raises StopIteration.
> Calling a generator, such as this next method, returns an iterator
> object; calling it repeatedly returns many such iterator objects, and
> never raises StopIteration, thus obviously producing an unending loop.
Thank you for that answer Alex, even though I didn't ask the question I
was wondering the same thing myself.
More information about the Python-list