【发布时间】:2020-06-13 18:02:28
【问题描述】:
在 Python 3.8 中,引入了 Walrus 运算符,允许将赋值作为表达式。
这意味着我们可以替换这两个语句
a = 2
print(a)
与
print(a := 2)
不过,Python 也有“就地”赋值运算符,例如,a = a * 3 等价于 a *= 3
有没有办法将“就地”运算符赋值与海象赋值结合使用?
如下代码
a *= 3
print(a)
要使用 Walrus 任务重新创建它,您似乎必须这样做
print(a := a * 3)
这两种尝试都会引发SyntaxError
print(a :*= 3)
print(a *:= 3)
【问题讨论】:
-
简写赋值表达式还不是一件事。
-
我猜你的实验用“否”回答了你的问题。
-
@KlausD。似乎是这样。我得出结论,在最新版本的 Python 中没有明显的方法可以做到这一点,但我可能错过了一些东西。或者,这个功能可能计划在未来的版本中发布。