22 Nov
2017
22 Nov
'17
4:19 p.m.
On 22 November 2017 at 15:56, Yury Selivanov
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