asyncio.async(cor())在异步函数中不工作?

2024-06-06 09:23:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下代码挂起一个corutine函数:

import asyncio

async def hello5():
    print('Hello5 ...')
    # await asyncio.sleep(5)
    print('... 5World!')


# @asyncio.coroutine
# def hello4():
#     print('Hello4 ...')
#     yield from asyncio.sleep(1)
#     # yield from hello5()
#     print('... 4World!')


async def hello4():
    print('Hello4 ...')
    asyncio.async(hello5())
    # yield from hello5()
    print('... 4World!')

loop1 = asyncio.get_event_loop()
loop1.run_until_complete(hello4())
loop1.close()

但是它不能被识别并且有以下错误

  File "C:\xx\white_board_asyncio.py", line 187
    asyncio.async(hello5())
                ^
SyntaxError: invalid syntax

我使用python3.6,所以异步应该可以工作,我想知道为什么会发生这种情况。asyncio.async不能在异步函数中使用吗?我可以在异步函数之外使用它

下面的方法很有效

loop1.run_until_complete(asyncio.async(hello5()))

我只是想知道为什么我不能在另一个corutine函数中使用它


Tags: 函数runfromasyncioasyncdefsleepuntil
1条回答
网友
1楼 · 发布于 2024-06-06 09:23:36

asyncio.async在添加async def时在3.5中被弃用。当async成为合适的关键字时,它在3.7中被删除。改用asyncio.ensure_future

相关问题 更多 >