On 5/6/05, Steven Bethard <[EMAIL PROTECTED]> wrote: > FWIW, I'm +1 on this. Enhanced Iterators > * updates the iterator protocol to use .__next__() instead of .next() > * introduces a new builtin next() > * allows continue-statements to pass values to iterators > * allows generators to receive values with a yield-expression > The first two are, I believe, how the iterator protocol probably > should have been in the first place. The second two provide a simple > way of passing values to generators, something I got the impression > that the co-routiney people would like a lot.
Thank you for splitting the PEP. Conceptually, the "coroutine" part has nothing to do with blocks and it stands on its own, it is right to discuss it separately from the block syntax. Personally, I do not see an urgent need for the block syntax (most of the use case can be managed with decorators) nor for the "couroutine" syntax (you can already use Armin Rigo's greenlets for that). Anyway, the idea of passing arguments to generators is pretty cool, here is some code I have, adapted from Armin's presentation at the ACCU conference: from py.magic import greenlet def yield_(*args): return greenlet.getcurrent().parent.switch(*args) def send(key): return process_commands.switch(key) @greenlet def process_commands(): while True: line = '' while not line.endswith('\n'): line += yield_() print line, if line == 'quit\n': print "are you sure?" if yield_() == 'y': break process_commands.switch() # start the greenlet send("h") send("e") send("l") send("l") send("o") send("\n") send("q") send("u") send("i") send("t") send("\n") Michele Simionato _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com