Python中能否将加法赋值运算符(+=)与海象运算符(:=)结合使用?
问题解答
- 首先明确结论:Python 不支持 你设想的
+:=这类将增量赋值与海象运算符组合的语法。 - 你当前使用的第一种写法是完全合法的:
a = 1 if (a := a + 1) == 2: print(a)
这是Python 3.8及以上版本支持的海象运算符(赋值表达式)标准用法,执行时会先计算a + 1的值赋值给a,再返回赋值后的a参与比较,运行后会正常输出2。
- 你尝试的第二种写法
(a +:= 1) == 2不符合Python语法规范,直接运行会抛出SyntaxError语法错误。目前Python没有设计任何增量运算符(+=、-=、*=等)和海象运算符:=的组合语法,如果你需要实现「增量赋值同时返回赋值结果」的逻辑,只能使用第一种标准写法,没有更简化的语法糖。
内容的提问来源于stack exchange,提问作者Nathan Dai
相关产品推荐
相关产品推荐

