能否在判断函数返回值为真时,一行完成赋值与判断操作?
Python中能否将函数调用赋值与返回值判断合并一行?
问题背景
现有如下Python函数示例:
def my_func(x): if x == 4: return 25 return False result = my_func(4) if result: print(result)
当前写法需要先调用函数赋值给变量,再判断变量值。想知道是否可以将函数返回值判断与赋值操作合并在一行完成,比如类似如下语法:
if my_func(4) => x: print(x)
解决方案
可以实现,Python 3.8及以上版本支持赋值表达式(又称海象运算符:=),刚好能满足这个需求。修改后的代码如下:
def my_func(x): if x == 4: return 25 return False if x := my_func(4): print(x)
说明
- 海象运算符
:=会先执行右侧的my_func(4)调用,将返回值赋值给变量x; - 同时把这个返回值作为整个表达式的结果,参与
if的条件判断; - 只要返回值为真(比如示例中的25,非零整数在Python中视为真值),就会执行
print(x)语句,输出25。
内容的提问来源于stack exchange,提问作者Cai Allin
相关产品推荐
相关产品推荐

