1

在 python 中可以进行解构:

a, b = 1, 2

增强分配也是可能的:

b += 1

但是有没有理由无法完成解构增强赋值?:

a, b += 1, 2
> SyntaxError: illegal expression for augmented assignment

据我所知,解构是一种语言。它不能被类似的东西修改object.__add__()。为什么语言不会分别调用object.__iadd__()扩充作业的每个部分?

4

1 回答 1

2

可能是因为表达式中的未定义行为,例如:

a, b += 1, a

应该如何评价?像这样

a' = a + 1
b = b + a'

要不就

b = b + a
a = a + 1

- 不清楚。因此,不允许解构扩充赋值。

于 2019-01-18T08:03:07.657 回答