首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >解析<async_generator对象...>

解析<async_generator对象...>
EN

Stack Overflow用户
提问于 2021-03-14 08:04:30
回答 1查看 116关注 0票数 0

我有一个函数,它产生:

<async_generator object functionOne at 0x000001CC289F8D30>

是否可以解析async_generator对象,使其包含的数组是可访问的?

EN

回答 1

Stack Overflow用户

发布于 2021-03-14 08:28:42

它后面没有任何数组(它是一个生成器,设计上是惰性的),您应该使用async for或使用__aiter__()__anext__()手动迭代此对象。这可能会对你起作用:

代码语言:javascript
复制
async_generator_iterator = <your_async_generator_function>()
res = [i async for i in async_generator_iterator]

如果要在异步上下文之外进行计算,只需使用异步函数包装它并在事件循环中运行:

代码语言:javascript
复制
async def get_result_async(asyncgen):
    return [i async for i in asyncgen]

def get_result_sync(asyncgen):
    loop = asyncio.get_event_loop()
    coro = get_result_async(asyncgen)
    res = loop.run_until_complete(coro)
    return res
    
async def functionOne():
    yield 1
    yield 2
    yield 3

asyncgen = functionOne()
get_result_sync(asyncgen)

# => [1, 2, 3]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66619787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档