在Python 3.8中,引入了Walrus运算符,允许将赋值作为表达式。
这意味着我们可以替换这2条语句
a = 2
print(a)
with
print(a := 2)
但是,Python也可以通过运算符进行“就地”赋值,例如a = a * 3
等效于a *= 3
是否有办法结合使用Walrus分配来使用“就地”运算符分配?
对于以下代码
a *= 3
print(a)
要用Walrus任务重新创建它,看来您必须这样做
print(a := a * 3)
这两种尝试都引起SyntaxError
print(a :*= 3)
print(a *:= 3)
您需要先定义a
:
print((a := 2)*3)
6