At 02:33 PM 8/23/04 -0400, Clark C. Evans wrote: >Perhaps it would be nice to add an alternative syntax to call a >generator when you are expecting exactly one value. > > def generator(): > yield 'one value' > def consumer(): > value = generator() We have that today: value, = generator() Or do I misunderstand you? >Full-blown corountines arn't necessary. A small tweak to generators >will do. I don't think this is true. Your hypothetical example can't resume 'top()' after it yields the "co-operate" control value, unless it either it *has* a stack of generators, or the Python core somehow maintains a stack of the executing generators. So, my point was that since this can already be done in user-level code with a stack of generators, I don't see the point to adding a facility to Python to create hidden stacks of generators. Instead, it would be more useful to get rid of the one piece that really is "magic", by providing a way to pass values or exceptions into a running generator. My comment about "coroutines" was more that Guido previously expressed distaste for adding such a communication mechanism to generators as abusing the concept of a generator just being a way to implement complex iterators. Therefore, I thought a coroutine proposal (backed by a suitable syntax and an implementation plan) might have more success.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4