question about generators

David Eppstein eppstein at ics.uci.edu
Tue Aug 20 01:05:15 EDT 2002


In article <3D618866.90708 at something.invalid>,
 Greg Ewing <see_reply_address at something.invalid> wrote:

> I've thought about this a bit more, and I think it can be done
> a lot more simply than that. All that's needed is a pointer in
> each generator-iterator that points to the subject of the
> current yield-every statement being executed, if any.
> 
> The next() method of the generator-iterator first checks this
> pointer, and if it's not null, does a next() on it instead.
> If it's null, or calling next() on it raises StopIteration,
> carry on executing until the next yield as usual.
> 
> This will still require going down a chain of next() methods
> when generators are nested, but the calls will all be C calls
> and should therefore be quite fast.

Somehow I find solutions that depend on the slowness of interpreted 
Python to be inelegant.  But I guess that's not a serious practical 
criticism...

-- 
David Eppstein       UC Irvine Dept. of Information & Computer Science
eppstein at ics.uci.edu http://www.ics.uci.edu/~eppstein/



More information about the Python-list mailing list