gpt4 book ai didi

python - 没有 `await` 的协程与函数有什么不同吗?

转载 作者:行者123 更新时间:2023-12-04 10:48:36 37 4
gpt4 key购买 nike

我想知道有什么理由声明一段没有 await 的代码任何为 async def (协程)而不是 def (功能)? Python 明确允许这样做。

def i_am_sync():
return 42

async def i_am_async():
return 42

我知道协程版本可以安排在事件循环上,但我无法想象这有什么实际应用,因为你可以直接调用同步代码?

最佳答案

如果函数不包含异步内容并且您认为它会保持这种状态,则无需声明它 async .有人可能会争辩说,最好不要在没有任何理由的情况下使函数异步,因为更好地将同步世界与异步分开(如果你真的对为什么感兴趣,你可能想阅读 this article 尤其是结论“如何使用彩色函数”) .

但是请注意,“异步内容”可能不仅与某些网络 I/O 相关,还与其他诸如 CPU 密集型操作或磁盘 I/O 相关,您可能想要 run in thread or process and await for the result .

关于python - 没有 `await` 的协程与函数有什么不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59586920/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com