Python的逗号运算符在赋值过程中是如何工作的?

14 浏览
0 Comments

Python的逗号运算符在赋值过程中是如何工作的?

我正在阅读Python文档中的赋值语句(http://docs.python.org/reference/simple_stmts.html#assignment-statements)。

其中引用到:

如果目标是用括号或方括号括起来的目标列表:对象必须是一个具有与目标列表中的目标数量相同的项目数的可迭代对象,并且其项目从左到右分配给相应的目标。

阅读之后,我想写一个类似这样的示例:

a = 5
b = 4
a, b = a + b, a
print a, b

我的假设是a和b都应该有值9。

然而,我被证明是错误的。'a'的值为9,而'b'的值为5。

有人可以帮助我更好地理解吗?为什么赋给了旧值而不是新值?根据文档,a的值应该首先赋值对吧?我是否漏掉了什么?

0