How to use Asynchronous Comprehensions?

。_饼干妹妹 提交于 2019-11-30 22:28:22

This behaves as expected. The issue is that these forms of comprehensions are only allowed inside async def functions. Outside (i.e in the top-level as entered in your REPL), they raise a SyntaxError as defined.

This is stated in the specification section of the PEP, specifically, for asynchronous comprehensions:

Asynchronous comprehensions are only allowed inside an async def function.

Similarly, for using await in comprehensions:

This is only valid in async def function body.

As for async loops, you'll need both an object that conforms to the necessary interface (defines __aiter__) and placed inside an async def function. Again, this is specified in the corresponding PEP:

It is a TypeError to pass a regular iterable without __aiter__ method to async for. It is a SyntaxError to use async for outside of an async def function.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!