【发布时间】:2020-04-04 04:00:03
【问题描述】:
谁能解释这里发生了什么?为什么会这样?
>>> b = "1984"
>>> a = b, c = "AB"
>>> print(a, b, c)
'AB', 'A', 'B'
这种行为真的让我大吃一惊。 找到这个here
【问题讨论】:
-
我不是 Python 内部的专家,但似乎第二行被解析为
a = (b, c = "AB") -
@RobinZigmond 实际上它更等同于
a = "AB",然后是b, c = a。 -
a取最右边项的值,显然解包b, c = "AB"是可以的,所以这是两种行为的组合。 -
因为
a = b = "value"很有用,而[a,b] = (1,2)很有用,所以两者都受支持。您只是期望它具有与使用分号相同的行为。a = 1 ; b = 2是在同一行进行多个独立赋值的合理方式。