依赖Python函数参数评估顺序是否安全? [重复]

参见英文答案 > Is Python’s order of evaluation of function arguments and operands deterministic (+ where is it documented)?2个答案假设在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

相关文章

迭代器模式(Iterator)迭代器模式(Iterator)[Cursor]意图...
高性能IO模型浅析服务器端编程经常需要构造高性能的IO模型,...
策略模式(Strategy)策略模式(Strategy)[Policy]意图:定...
访问者模式(Visitor)访问者模式(Visitor)意图:表示一个...
命令模式(Command)命令模式(Command)[Action/Transactio...
生成器模式(Builder)生成器模式(Builder)意图:将一个对...