2024-05-29 05:59:22 发布
网友
我想知道有什么理由声明一段代码,它不作为await任何东西而不是async def(协同程序)而不是def(函数)?Python明确允许这样做。你知道吗
await
async def
def
def i_am_sync(): return 42 async def i_am_async(): return 42
我知道coroutine版本可以安排在事件循环上,但我无法想象这有什么实际应用,因为您可以直接调用同步代码?你知道吗
如果函数不包含异步内容,并且您认为它将保持这种方式,则无需声明它async。有人可能会说,最好不要无缘无故地使函数异步,因为这样可以更好地将sync world与async分开(如果您真的对原因感兴趣,您可能想阅读this article,特别是总结“如何使用有色函数”)。你知道吗
async
但是请注意,“异步的东西”可能不仅仅是一些与网络I/O相关的东西,还有其他一些东西,比如CPU繁重的操作或磁盘I/O,您可能需要run in thread or process and await for the result。你知道吗
如果函数不包含异步内容,并且您认为它将保持这种方式,则无需声明它
async
。有人可能会说,最好不要无缘无故地使函数异步,因为这样可以更好地将sync world与async分开(如果您真的对原因感兴趣,您可能想阅读this article,特别是总结“如何使用有色函数”)。你知道吗但是请注意,“异步的东西”可能不仅仅是一些与网络I/O相关的东西,还有其他一些东西,比如CPU繁重的操作或磁盘I/O,您可能需要run in thread or process and await for the result。你知道吗
相关问题 更多 >
编程相关推荐