您可以在Python中将加法赋值(+=)运算符与海象运算符(:=)结合使用吗?
这是我现在写的代码:
a = 1
if (a := a + 1) == 2:
print(a)
我想知道是否存在这样的事情:
a = 1
if (a +:= 1) == 2:
print(a)
回答
PEP-527定义了新的海象运算符。讨论赋值语句和表达式之间差异的部分明确指出:
不支持增强分配:
total += tax # Equivalent: (total := total + tax)
在部分解释为什么=仍然是必要的:=,我们发现:
这两种形式具有不同的灵活性。:= 操作符可以在更大的表达式中使用;= 语句可以扩充到 += 及其朋友,可以链接,并且可以分配给属性和下标。
这强烈暗示无意支持任何类型的海象和就地运营商的合并。
THE END
二维码