【发布时间】:2018-09-13 01:36:25
【问题描述】:
在尝试聚合来自异步生成器的结果时,如下所示:
async def result_tuple():
async def result_generator():
# some await things happening in here
yield 1
yield 2
return tuple(num async for num in result_generator())
我得到一个
TypeError: 'async_generator' 对象不可迭代
在执行async for 行时。
但PEP 530 似乎暗示它应该是有效的:
异步理解
我们建议允许对内部列表、集合和字典推导使用异步。在 PEP 525 批准之前,我们还可以允许创建异步生成器表达式。
例子:
- 集合理解:{i async for i in agen()};
- 列表理解:[i async for i in agen()];
- dict 理解:{i: i ** 2 async for i in agen()};
- 生成器表达式:(i ** 2 async for i in agen())。
发生了什么,如何将异步生成器聚合到单个 tuple 中?
【问题讨论】:
标签: python python-asyncio