这是我在Python3解释器中尝试的代码段,
>>> x = y = 3
>>> x, y
(3, 3)
>>> x = y = 3
>>> x, y
(3, 3)
>>> x = y = y + 3
>>> x, y
(6, 6)
>>> x = y += 3
File "<stdin>", line 1
x = y += 3
^
SyntaxError: invalid syntax
我知道当Python语法不支持该表达式时会出现SyntaxError,但是我无法弄清楚为什么+=
不能像=
那样被链接。
答案 0 :(得分:1)
根据python文档-
除了分配给元组和多个目标 单条语句,通过扩展分配完成分配 语句的处理方式与普通分配相同。
还
实际操作是就地执行的,这意味着 创建一个新对象并将其分配给目标(旧对象) 而是修改。
在python中,赋值和扩充赋值是语句,而不是表达式,因此不能在复杂的表达式中使用。例如,以下是有效的C,但无效的Python:
a += b += c
参考文献: