字典评估顺序 与书面顺序相同,但是存在一个突出的错误,即在 键 之前评估 值 。(该错误最终在Python 3.5中得以修复)。 __
从参考文档引用:
Python从左到右计算表达式。
并从错误报告中:
运行以下代码会显示"2 1 4 3"
,但在参考手册http://docs.python.org/reference/expressions.html#expression- 列出了评估顺序为{expr1: expr2, expr3: expr4}
def f(i):
print i
return i
{f(1):f(2), f(3):f(4)}
Guido说:
我坚持以前的观点:代码应该固定。看起来不像是给我的任务。
此错误已在Python 3.5中修复,因此在Python 3.4及更早版本中,仍会在键之前评估值:
>>> import sys
>>> sys.version_info
sys.version_info(major=3, minor=4, micro=2, releaselevel='final', serial=0)
>>> def f(i):
... print(i)
... return i
...
>>> {f(1):f(2), f(3):f(4)}
2
1
4
3
{1: 2, 3: 4}