为什么在asyncio.run()内部调用async函数?

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

Python 文档给出了这个代码示例:

import asyncio

async def main():
    print('Hello ...')
    await asyncio.sleep(1)
    print('... World!')

asyncio.run(main())

为什么

main
asyncio.run()
 中被称为
(以及在其他异步函数中,如
asyncio.gather()
)?

这让我很困惑,因为在 JavaScript 中,我们做类似

document.addEventListener('click', someFunction)
的事情 - 我们传递
someFunction
,而不是它的结果。

我假设,异步函数返回一些可调用对象,但Google 说不

python python-asyncio
1个回答
2
投票

asyncio.run 需要一个 coroutine 作为参数。

参考 Python glossary

main
是一个 coroutine 函数,它返回一个协程。

因此,

main()
必须传递给
asyncio.run
,而不是
main

© www.soinside.com 2019 - 2024. All rights reserved.