On Fri, Oct 19, 2012 at 10:44 PM, Greg Ewing <greg.ewing@canterbury.ac.nz> wrote:
If I wrote a library intended for serious use, the end user probably wouldn't write either of those. Instead he would write something like
yield from block(self.queue)
and it would be an implementation detail of the library where abouts the 'yield' happened and whether it needed to send a value or not.
What's the benefit of having both "yield" and "yield from" as opposed to just "yield"? It seems like an attractive nuisance if "yield" works but doesn't let the function have implementation details and wait for more than one thing or somesuch. With the existing generator-coroutine decorators (monocle, inlineCallbacks), there is no such trap. "yield foo()" will work no matter how many things foo() will wait for. My understanding is that the only benefit we get here is nicer tracebacks. I hope there's more. -- Devin