如何不定义额外变量避免重复计算f(x) 求更简洁高效的代码写法
可行方案(Python 3.8及以上版本)
直接使用海象赋值运算符:=,在if判断语句内完成函数返回值的赋值和校验,全程不需要提前单独定义额外变量,且只会调用一次f(x):
if (res := f(x)) == 0: print(res)
注意事项
- 海象运算符是Python 3.8版本新增的语法,低于该版本的Python环境无法运行该写法
- 这里的
res作用域和原本提前定义变量的写法一致,不会产生额外的作用域污染
低版本Python兼容方案(可读性较差,不推荐生产环境使用)
如果必须兼容Python 3.7及更早版本,又不想提前定义变量,可以借助临时列表+列表推导实现,不过代码可读性会大幅下降:
[print(v) for v in [f(x)] if v == 0]
内容的提问来源于stack exchange,提问作者Christian
相关产品推荐
相关产品推荐

