[Python-Dev] yield back-and-forth?

Guido van Rossum guido at python.org
Fri Jan 20 19:17:46 CET 2006

The discussion about PEP 343 reminds me of the following. Bram Cohen
pointed out in private email that, before PEP 342, there wasn't a big
need for a shortcut to pass control to a "sub-generator" because the
following for-loop works well enough:

 def main_generator():
      for value in sub_generator():
          yield value

but now that yield can return a value, that value might have to be
passed into sub_generator(), not to mention of exceptions. I'm sure
there's a way to write that (although I haven't found the time to
figure it out) but I expect it to be cumbersome and subtle. I don't
think a helper function can be created to solve this problem, because
the yield syntax is essential.

Bram suggested the following syntax:

  def main_generator():
      yieldthrough sub_generator()

I'm not keen on that particular keyword, but I do believe a syntactic
solution is needed, if the problem is important enough to be solved.


--Guido van Rossum (home page: http://www.python.org/~guido/)

More information about the Python-Dev mailing list