您可以在 Python 中将加法赋值 ( += ) 运算符与海象运算符 ( := ) 结合使用吗?

Nat*_*Dai 3 python python-3.8 walrus-operator

这是我现在写的代码:

a = 1
if (a := a + 1) == 2:
  print(a)
Run Code Online (Sandbox Code Playgroud)

我想知道是否存在这样的事情:

a = 1
if (a +:= 1) == 2:
  print(a)
Run Code Online (Sandbox Code Playgroud)

Mad*_*ist 7

PEP-527定义了新的海象运算符。讨论赋值语句和表达式之间差异的部分明确指出:

部分解释为什么=仍然是必要的:=,我们发现:

这两种形式具有不同的灵活性。:= 操作符可以在更大的表达式中使用;= 语句可以扩充到 += 及其朋友,可以链接,并且可以分配给属性和下标。

这强烈暗示无意支持任何类型的海象和就地运营商的合并。