为什么解构增强赋值是不可能的?
Why is a destructuring augmented assignment not possible?
在 python 中可以进行解构:
a, b = 1, 2
也可以增加赋值:
b += 1
但是有没有理由解构增广赋值不能完成?:
a, b += 1, 2
> SyntaxError: illegal expression for augmented assignment
据我所知,解构是一种语言;它不能被 object.__add__()
之类的东西修改。为什么语言不对扩充赋值的每个部分单独调用 object.__iadd__()
?
可能是因为表达式中的未定义行为,例如 a:
a, b += 1, a
应该如何评价?像这样
a' = a + 1
b = b + a'
或
b = b + a
a = a + 1
- 不清楚。因此,不允许解构扩充赋值。
在 python 中可以进行解构:
a, b = 1, 2
也可以增加赋值:
b += 1
但是有没有理由解构增广赋值不能完成?:
a, b += 1, 2
> SyntaxError: illegal expression for augmented assignment
据我所知,解构是一种语言;它不能被 object.__add__()
之类的东西修改。为什么语言不对扩充赋值的每个部分单独调用 object.__iadd__()
?
可能是因为表达式中的未定义行为,例如 a:
a, b += 1, a
应该如何评价?像这样
a' = a + 1
b = b + a'
或
b = b + a
a = a + 1
- 不清楚。因此,不允许解构扩充赋值。