使用 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
模块更适合此类任务。
我正在尝试计算排序函数需要多长时间,但我正在努力让 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
模块更适合此类任务。