【发布时间】:2011-10-12 09:43:56
【问题描述】:
考虑以下 Python3 程序:
a = [0, 0]
i = 0
a[i] = i = 1
print(a, i)
a = [0, 0]
i = 0
i = a[i] = 1
print(a, i)
我预计输出是:
[0, 1] 1
[1, 0] 1
但我得到了:
[1, 0] 1
[0, 1] 1
我的问题是:Python 语言规范中是否有任何关于赋值运算符的关联性的内容,或者上述示例的行为是否未定义?
我所能找到的只是表达式是从左到右评估的,除了在赋值的情况下首先评估 r 值,但这没有帮助。
【问题讨论】:
-
有趣的是,您的示例与end of the section 的示例非常相似。