如何从函数对象创建本机协程?

Mik*_*mov 5 python python-3.x python-asyncio

基于生成器的协程可以轻松地从函数对象创建:

coro = asyncio.coroutine(func)
Run Code Online (Sandbox Code Playgroud)

原生协程(通常由)怎么样async def
有什么方法可以从现有的函数对象创建它们吗?

son*_*olo 1

在 Python 3.5 中,创建异步函数的方法是使用 async def() 语法。不确定尝试将普通函数包装到本机协程中的好处,因为如果没有什么可等待的,那似乎毫无意义?特别是因为不需要使用await或yield from调用函数?(因为你可以正常执行它。)

不过,这对您的目的有用吗?

def test():
    print('boo')

async def async_test():
    return test()
Run Code Online (Sandbox Code Playgroud)

  • 在特殊情况下,当我们无法将函数定义为协程,但我们需要将其用作协程时,包装的好处是。更好地看到:http://stackoverflow.com/a/23036785/1113207 (2认同)