Python time()相对于它所度量的语句的执行,度量的是哪个时间点';她在吗?

Python time()相对于它所度量的语句的执行,度量的是哪个时间点';她在吗?,python,python-3.x,Python,Python 3.x,问题不在于算法或修复代码中的错误。我只是想弄清楚跟踪时间是如何工作的。例如,有一行: x = my_func(4, 2) * time() 该行以3.0秒的速度运行,my_func(4,2)需要0.5秒才能返回结果 问题是time()何时开始跟踪时间?3.0秒,线路运行时?或者在3.5,在计算my_func(4,2)之后?与大多数运算符一样,“*”运算符的操作数按从左到右的顺序求值我的函数将在时间开始执行之前完成执行。您可以通过使用打印到标准输出的函数作为副作用来进行经验测试,例如: >

问题不在于算法或修复代码中的错误。我只是想弄清楚跟踪时间是如何工作的。例如,有一行:

x = my_func(4, 2) * time()
该行以3.0秒的速度运行,
my_func(4,2)
需要0.5秒才能返回结果


问题是time()何时开始跟踪时间?3.0秒,线路运行时?或者在3.5,在计算my_func(4,2)之后?

与大多数运算符一样,“*”运算符的操作数按从左到右的顺序求值<代码>我的函数将在
时间
开始执行之前完成执行。您可以通过使用打印到标准输出的函数作为副作用来进行经验测试,例如:

>>> def f(x):
...     print(x)
...     return 0
...
>>> x = f("1st") * f("2nd")
1st
2nd
顺便说一句,如果您试图跟踪
my_func
的运行时,那么执行
my_func(4,2)*time()
并不是一种非常实用的方法
time.time()
返回自Unix纪元以来的秒数,因此调用它一次不会告诉您程序的长度,除非您从1970年1月1日开始运行它。更传统的方法是在程序开始时执行
start\u time=time.time()
,然后在程序结束时执行
end\u time=time.time()
,然后将两者相减


或者您可以使用专门为这种基准测试设计的
timeit
模块。

与大多数运算符一样,“*”运算符的操作数按从左到右的顺序计算<代码>我的函数将在
时间
开始执行之前完成执行。您可以通过使用打印到标准输出的函数作为副作用来进行经验测试,例如:

>>> def f(x):
...     print(x)
...     return 0
...
>>> x = f("1st") * f("2nd")
1st
2nd
顺便说一句,如果您试图跟踪
my_func
的运行时,那么执行
my_func(4,2)*time()
并不是一种非常实用的方法
time.time()
返回自Unix纪元以来的秒数,因此调用它一次不会告诉您程序的长度,除非您从1970年1月1日开始运行它。更传统的方法是在程序开始时执行
start\u time=time.time()
,然后在程序结束时执行
end\u time=time.time()
,然后将两者相减


或者您可以使用专门为这种基准测试设计的
timeit
模块。

为什么您希望
time()
的行为与任何其他功能不同?这不是什么特殊的“跟踪”功能;它只是一个返回调用时间的函数,因此应用于其他所有函数的操作顺序也适用于确定调用发生的时间。为什么您希望
time()
的行为与任何其他函数不同?这不是什么特殊的“跟踪”功能;它只是一个返回调用时间的函数,因此适用于其他所有操作的操作顺序也适用于确定调用发生的时间。一个可能有助于OP的示例:
x=print('1st')或print('2nd')
@Chris_Rands:我不同意。OP使用的是
*
而不是
运算符。“作为一个说明性示例,提供具有可观察到的副作用的操作数”的总体思路是合理的,因此我在仍然使用
*
的情况下将其集成到我的帖子中。一个可能有助于OP的示例:
x=print('1st')或print('2nd')
@Chris Rands:我不同意。OP使用的是
*
而不是
运算符。“作为一个说明性示例,提供具有可观察到的副作用的操作数”的总体思路是合理的,因此我在仍然使用
*
的情况下将其集成到我的帖子中。