Python 与时间一起工作。处理时间()
我试图计算排序函数需要多长时间,但我很难让Python 与时间一起工作。处理时间(),python,python-3.x,attributeerror,Python,Python 3.x,Attributeerror,我试图计算排序函数需要多长时间,但我很难让time.process\u time()正常工作 我当前的设置是: start = time.process_time() insertionsort(n) end = time.process_time() time = start-end 当我运行此操作时,出现以下错误: “float”对象没有“process\u time”属性 如何解决此问题?我想使用time.process\u time()问题在于代码中未显示的部分。我假设您在开始时导入
time.process\u time()
正常工作
我当前的设置是:
start = time.process_time()
insertionsort(n)
end = time.process_time()
time = start-end
当我运行此操作时,出现以下错误:
“float”对象没有“process\u time”属性
如何解决此问题?我想使用
time.process\u time()
问题在于代码中未显示的部分。我假设您在开始时导入了time
模块:
import time
它创建一个名称time
,该名称引用time
模块
但是,稍后您将创建一个名为time
的变量来存储时差。此时,名称time
引用的是差异,而不是模块。因此,当您尝试使用time.process\u time()
时,随后会出现错误
这个简单的片段说明了问题:
>>> import time
>>> time = -(time.process_time() - time.process_time())
>>> time.process_time()
AttributeError: 'float' object has no attribute 'process_time'
如果坚持使用time.process\u time()
最好的方法是重命名存储时差的变量:
measured_execution_time_insertionsort = end - start
但您也可以直接从time
模块导入process\u time
功能:
from time import process_time
start = process_time()
insertionsort(n)
end = process_time()
time = end - start
这两种方法都避免了名称冲突。但是,如果您想测量执行时间,我建议您使用该模块,它比
时间
模块更适合此类任务。这就是问题所在time=start-end
不要使用与标准库相同的名称命名变量。要获得肯定的时间答案,您需要将其设置为time=end-start
,而不是time=start-end
@ThomasS。是的,我最初是从问题中抄来的。然而,有一个积极的结果似乎显然是正确的,所以我更新了答案。谢谢你指出这一点。