依靠Python函数参数评估顺序安全吗?

假设在Python中从左到右计算函数参数是否安全?

参考指出,它发生的方式,但也许有一些方法来改变这个可能会破坏我的代码的顺序。

我想要做的是为函数调用添加时间戳:

l = [] l.append(f(), time.time()) 

我明白我可以顺序评估论据:

 l = [] res = f() t = time.time() l.append(res, t) 

但它看起来不那么优雅,所以如果我能依靠它,我更喜欢第一种方式。

是的,Python总是从左到右评估函数参数。

据我所知,这是用于任何逗号分隔的列表:

 >>> from __future__ import print_function >>> def f(x, y): pass ... >>> f(print(1), print(2)) 1 2 >>> [print(1), print(2)] 1 2 [None, None] >>> {1:print(1), 2:print(2)} 1 2 {1: None, 2: None} >>> def f(x=print(1), y=print(2)): pass ... 1 2 

从参考文献引用 :

Python从左向右评估expression式。

所以是的,你可以指望。