“await”关键字只允许在异步函数中使用

问题描述 投票:0回答:1

当我尝试等待“async def”时,出现错误:““await”关键字仅允许在异步函数中使用”。我的代码:

import time
import asyncio
energy = 0
async def regen_energy(energy):
    while energy != 1000:
        energy += 1
        await time.sleep(0.5)
        await print(energy)
await regen_energy(energy)

我的错误是什么或在哪里?

python-3.x asynchronous async-await
1个回答
0
投票

这是固定版本:

  1. 使用
    asyncio.sleep()
    代替同步
    time.sleep()
  2. 为什么将
    await
    print()
    函数一起使用?这没有道理
  3. 使用
    asyncio.run()
import asyncio


async def regen_energy(energy):
    while energy != 10:
        energy += 1
        await asyncio.sleep(0.5)  # <-- use asyncio.sleep() instead
        print(energy)  # <-- remove await here


energy = 0
if __name__ == "__main__":
    asyncio.run(regen_energy(energy))
© www.soinside.com 2019 - 2024. All rights reserved.