为什么不能进行解构扩充分配?

问题描述 投票:1回答:1

在python中可以进行解构:

a, b = 1, 2

增强分配也是可能的:

b += 1

但有没有理由解构扩充分配无法完成?:

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

从我所知,解构是一种语言的东西;它不能被像object.__add__()这样的东西修改。为什么语言不会单独调用增强赋值的每个部分上的object.__iadd__()

python destructuring augmented-assignment
1个回答
2
投票

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

a, b += 1, a

应如何评估?像这样

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

要不就

b = b + a
a = a + 1

- 目前还不清楚。因此,不允许解构扩充分配。

© www.soinside.com 2019 - 2024. All rights reserved.