[Python-ideas] PEP 530: Asynchronous Comprehensions

Yury Selivanov yselivanov.ml at gmail.com
Sat Sep 3 21:03:39 EDT 2016


Hi Matthias,


On 2016-09-03 5:55 PM, Matthias welp wrote:
> > In principle, asynchronous generator expressions are allowed in
> > any context.  However, in Python 3.6, due to ``async`` and ``await``
> > soft-keyword status, asynchronous generator expressions are only
> > allowed in an ``async def`` function.  Once ``async`` and ``await``
> > become reserved keywords in Python 3.7 this restriction will be
> > removed.
>
> Would this mean that with this PEP I can write a for loop like this?
>
>     for (await?) item in async_generator():
>         ... code
>
> Or am I misunderstanding something?

No, this is an illegal syntax and will stay that way.

The PEP allows to do this:

     [await item for item in generator()]

and this:

     [await item async for item in async_generator()]

The idea is to remove any kind of restrictions that we currently have on
async/await. A lot of people just assume that PEP 530 is already
implemented in 3.5.

Yury


More information about the Python-ideas mailing list