On Wed, Nov 8, 2017 at 9:31 AM, Chris Angelico <ros...@gmail.com> wrote:
> On Thu, Nov 9, 2017 at 3:19 AM, Ian Kelly <ian.g.ke...@gmail.com> wrote:
>> I was not referring to the possible future use of yield from for async
>> generators; I was referring to the possibility *today* of using "yield
>> from" as a synonym for *await*. As far as I know the only major
>> obstacle to that is that the authors (with good reason) made it a
>> SyntaxError. This is exactly the same sort of situation: it's a
>> construct that would otherwise be perfectly valid, but it's made a
>> SyntaxError specifically to prevent users from doing some the devs
>> don't want them to.
>
> I don't understand why you would use "yield from" as a synonym for
> "await". They are not equivalent. Why would you use one in place of
> the other?

There's not really a good reason to use "yield from" with "async def"
when you could just use "await", but the point is that in principle
you could. In a generator-based coroutine (e.g. asyncio prior to
Python 3.5), "yield from" is used to pause the coroutine and wait on
some future. In a native coroutine (e.g. after Python 3.5), "await" is
used to pause the coroutine and wait on some future. The
implementation AIUI is essentially the same; the __await__ method is
even required to return an iterator, just like __iter__.

That's why I'm saying that they're basically synonyms. All that's
really separating them is the syntax error.
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to