python - 将同步函数定义为 async 并等待它有什么好处吗?
问题描述
假设我有一个具有以下定义的函数:
def f(x, y):
sum = x + y
return sum
我在另一个协程中使用这个函数,比如 g:
async def g():
.
sum = f(2, 3)
.
将 f 定义为协程并在 g 中等待它是否有任何好处,或者结果是否相同?
async def g():
.
sum = await f(2, 3)
.
解决方案
它的区别是双重的:
附加
await
在您的代码中引入了“中断”,其他异步任务有机会执行;您的异步任务不应该运行如此长时间,以至于这会产生任何实际差异,但是您已经拥有了。您正在为异步执行准备代码,如果您
f
作为回调传递,这会有所不同:async def g(f): sum = await f(2, 3)
即使
f
现在不是异步的,您将来也可以将其重构为异步的,并且接口将继续工作而无需更改。这是否对您有任何实际意义取决于您自己决定。
推荐阅读
- php - 在 Heroku 上部署时 Symfony 3.4 应用程序中的 Ckeditor 出现问题
- python - 验证来自 input() 函数的字符串输入时遇到问题
- iphone-standalone-web-app - Web 应用程序不再独立打开 (iOS 13)
- c++ - 卡在一个循环中
- html - 如何使用具有不同高度的 div 的 CSS Flexbox
- r - 为什么闪亮的应用程序使用突出显示功能和 selectize=TRUE 将虚假小部件添加到 Plotly 图中?
- python-3.x - numpy ValueError:操作数无法与形状一起广播
- c# - Xamarin 表单中的选取器列表
- reactjs - 在 React Native 的 React Navigation 5 中,HeaderShown: false 不会隐藏标题
- pine-script - 似乎无法根据 TradingView 中的权益调整我的订单大小