在python中可以进行解构:
a, b = 1, 2
增强分配也是可能的:
b += 1
但有没有理由解构扩充分配无法完成?:
a, b += 1, 2
> SyntaxError: illegal expression for augmented assignment
从我所知,解构是一种语言的东西;它不能被像object.__add__()
这样的东西修改。为什么语言不会单独调用增强赋值的每个部分上的object.__iadd__()
?
可能是因为表达式中的未定义行为,如:
a, b += 1, a
应如何评估?像这样
a' = a + 1
b = b + a'
要不就
b = b + a
a = a + 1
- 目前还不清楚。因此,不允许解构扩充分配。