You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用一行Python代码实现避免重复调用heavy_computation()的条件赋值?

一行Pythonic写法实现逻辑(避免重复调用函数)

当然可以实现,Python 3.8及以上版本提供的**赋值表达式(海象运算符:=)**就是最优解,既能只调用一次heavy_computation(),又保持代码简洁可读:

x = val if (val := heavy_computation()) > 0 else None

说明:

  • val := heavy_computation()会先执行耗时的计算,将结果赋值给val,同时把这个值传递给后续的判断条件
  • 整个逻辑在一行内完成,完全避免了重复调用函数的问题,代码可读性也远超嵌套技巧

如果你的Python版本低于3.8(不支持海象运算符),也可以用生成器表达式实现一行写法,但可读性稍差:

x = next((val for val in [heavy_computation()] if val > 0), None)

不过优先推荐海象运算符的写法,它是专门为这类"先赋值再判断"的场景设计的,最符合Python的简洁风格。

内容的提问来源于stack exchange,提问作者Federico Taschin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:45:36