为什么无法进行解构式扩充任务?

时间:2019-01-17 05:09:09

标签: python destructuring augmented-assignment

可以在python中进行破坏:

a, b = 1, 2

也可以进行扩展分配:

b += 1

但是有没有理由不能解构扩充的任务?:

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

据我所知,销毁是一种语言问题;不能用object.__add__()之类的东西来修改它。为什么不对扩充作业的每个部分分别使用语言object.__iadd__()

1 个答案:

答案 0 :(得分:2)

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

a, b += 1, a

应如何评估?像这样

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

或者只是

b = b + a
a = a + 1

-尚不清楚。因此,不允许破坏扩充分配。