参见英文答案 >
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。