如何从函数对象创建本机协程?
Posted
技术标签:
【中文标题】如何从函数对象创建本机协程?【英文标题】:How can I create native coroutine from function object? 【发布时间】:2015-10-28 13:00:10 【问题描述】:基于生成器的协程可以很容易地从函数对象中创建:
coro = asyncio.coroutine(func)
原生协程(通常由 async def
创建)怎么样?
有没有办法从现有的函数对象创建它们?
【问题讨论】:
【参考方案1】:在 Python 3.5 中,创建异步函数的方法是使用 async def() 语法。不确定尝试将普通函数包装到本机协程中的好处,因为如果没有什么可等待的,那似乎毫无意义?特别是因为不需要使用 await 或 yield from 来调用函数? (因为你可以正常执行。)
不过,这对您的目的有用吗?
def test():
print('boo')
async def async_test():
return test()
【讨论】:
有利于在特殊情况下进行包装,当我们不能将函数定义为协程,但我们需要将其用作协程时。最好看看:***.com/a/23036785/1113207 您有具体的用例示例吗? 我也不遵循用例。 你是对的。我才明白,我真的不需要。以上是关于如何从函数对象创建本机协程?的主要内容,如果未能解决你的问题,请参考以下文章
Kotlin 协程协程启动 ⑥ ( 协程生命周期状态 | 新创建 New | 活跃 Active | 完成中 Completing | 已完成 Completed | 取消中 | 已取消 )
Kotlin 协程协程启动 ⑥ ( 协程生命周期状态 | 新创建 New | 活跃 Active | 完成中 Completing | 已完成 Completed | 取消中 | 已取消 )