运行 来自 Python 中非协程函数的协程函数?

Running a coroutine function from a noncoroutine function in Python?

我正在使用 discord.py 与 discord 互动。

def hi():
    await client.send_message(channel, message)

出现语法错误,除非我在 hi() 函数时写 "async"。 实在看不懂,求助!

您可以在事件循环中安排协程。您不能在非协同程序中调用它们或等待它们。

让我们检查以下代码:

import asyncio


async def greetLater(name, delay):
    await asyncio.sleep(delay)
    print("Hello {}!".format(name))


def main():
    loop = asyncio.get_event_loop()
    loop.run_until_complete(greetLater("masnun", 10))


if __name__ == '__main__':
    main()

上面代码中,greetLater是协程。我们不能直接从 main 函数中调用它。我们在这里需要做的是创建一个事件循环,然后在那里调度协程。我们使用 asyncio 模块来帮助我们创建事件循环和 运行 协程。

进一步参考:

(免责声明:链接到我关于该主题的个人博客文章,您可以google获得更多参考)