gpt4 book ai didi

python - time.clock(),在函数定义内部使用时出现奇怪的结果

转载 作者:行者123 更新时间:2023-11-28 17:40:17 24 4
gpt4 key购买 nike

使用以下代码(Python 3.3.x,WinXp):

## debug function in a general/personal debug include file.
def timer_compare(time1, time2='', note='@', time3=time.clock()):
print('time1',time1)
time2 = time.clock() ## same as the function-passed time.clock() (just a little later)
print('time2',time2)
print('time3',time3)
exit(321)

主代码文件中使用的调用者代码:

time0 = time.clock()
## <other unrelated code.>
timer_compare(time0, time.clock())

我得到以下输出:

time1 0.0445(snip)
time2 0.0445(snip)
time3 0.0000043(snip) <- 4.385582001116343e-06

time3这里好像有办法低号。(它有点像是从刚刚创建的计时器盒中提取出来的。)

这是怎么回事/我错过了什么?

  • 我知道 time.time() 通常比 time.clock() 更受青睐/建议,为什么。

最佳答案

函数默认值在定义时创建,而不是在调用时创建。 timer_compare 函数是一个对象,默认值在创建时计算并作为该对象的属性存储。

由于您的函数是在您的模块被导入时创建的(或者当您的顶级脚本首次被 Python 加载时),time.clock() 值将非常低。

改用哨兵:

def timer_compare(time1, time2='', note='@', time3=None):
if time3 is None:
time3 = time.clock()

关于python - time.clock(),在函数定义内部使用时出现奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25361894/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com