使用 time.process_time()

Working with time.process_time()

我正在尝试计算排序函数需要多长时间,但我正在努力让 time.process_time() 工作。

我当前的设置是:

start = time.process_time()
insertionsort(n)
end = time.process_time()

time = start-end

当我运行这个时,我得到这个错误:

'float' object has no attribute 'process_time'

如何解决这个问题?我想使用 time.process_time().

问题出在您未显示的部分代码中。我假设您一开始就导入了 time 模块:

import time

创建一个引用 time 模块的名称 time

但后来您创建了一个名为 time 的变量来存储时差。此时名称 time 引用的是差异而不是模块。因此,当您之后尝试使用 time.process_time() 时,您会收到错误消息。

这个简单的片段说明了问题:

>>> import time
>>> time = -(time.process_time() - time.process_time())
>>> time.process_time()
AttributeError: 'float' object has no attribute 'process_time'

如果您坚持使用 time.process_time(),最好的方法是重命名存储时差的变量:

measured_execution_time_insertionsort = end - start

但您也可以直接从 time 模块导入 process_time 函数:

from time import process_time

start = process_time()
insertionsort(n)
end = process_time()

time = end - start

两种方法都避免了名称冲突。但是,如果您想测量执行时间,我建议您使用 timeit 模块,它比 time 模块更适合此类任务。