On 22 November 2017 at 15:56, Yury Selivanov <yselivanov...@gmail.com> wrote:
> For synchronous generator expression:
>
>    r = (f(i) for i in range(3))
>
> is really:
>
>    def _():
>       for i in range(3):
>         yield f(i)
>    r = _()
>
> For an asynchronous generator expression:
>
>    r = (await f(i) for i in range(3))
>
> is equivalent to:
>
>    def _():
>       for i in range(3):
>         yield (await f(i))
>    r = _()

Wait, I missed this on first reading. The note in the docs for
generator expressions defining asynchronous generator expressions is
*incredibly* easy to miss, and doesn't say anything about the
semantics (the expansion you quote above) being different for the two
cases. This definitely needs clarifying in the docs.

Paul
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to