[Python-Dev] Re: Minimal 'stackless' PEP using generators? (original) (raw)

Brett C. bac at OCF.Berkeley.EDU
Tue Aug 24 06:56:13 CEST 2004


Greg Ewing wrote:

it would be equivalent as if every "val = g2.next()" in g1 was rewritten:

val = g2.next() if isinstance(val, magic.Cooperate): yield val Something bothers me about that proposal, and I think it's this: it would mean that generators are no longer simply a particular technique for implementing iterators, but would have special powers that other iterators don't have. Unless recognising the magic Cooperate value and doing the right thing were made part of the iterator protocol, and all iterators were expected to do the right thing with it, which would be a big imposition.

I agree with Greg and the other comments on wanting to keep generators simple. Part of the beauty of generators is the are brain-dead simple to use while still being handy as hell. Playing with them to add the ability to play asynchronous stuff doesn't seem right.

I would rather see full-blown coroutines for Python 3000 to deal with this somehow.

-Brett



More information about the Python-Dev mailing list