为什么链接增强分配会引发SyntaxError

时间:2019-07-13 19:49:14

标签: python python-3.x

这是我在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,但是我无法弄清楚为什么+=不能像=那样被链接。

1 个答案:

答案 0 :(得分:1)

根据python文档-

  

除了分配给元组和多个目标   单条语句,通过扩展分配完成分配   语句的处理方式与普通分配相同。

  

实际操作是就地执行的,这意味着   创建一个新对象并将其分配给目标(旧对象)   而是修改。

在python中,赋值和扩充赋值是语句,而不是表达式,因此不能在复杂的表达式中使用。例如,以下是有效的C,但无效的Python:

a += b += c

参考文献: