这是我的代码:
import datetime, time
def function():
start = datetime.now()
...
stop = datetime.now()
result = (stop - start).total_seconds()
return result
但是当我执行它时,它返回0 ...为什么呢
答案 0 :(得分:0)
按原样,该代码根本不会运行,也不返回任何内容。相反,我得到了一个属性错误:
AttributeError:模块'datetime'没有属性'now'
当我修复您的代码(from datetime import datetime
)并运行它时,结果为
0:00:00
可能是小时,分钟和秒。即在开始和停止之间使用...
as the only command。
如果...
部分的时间小于一毫秒,则可能无法检测到它。我怀疑您在评论中指出需要50毫秒(另请参见下文)。
我可以在一个函数中两次调用当前时间吗?
是:
import time
from datetime import datetime
def function():
start = datetime.now()
time.sleep(.001)
stop = datetime.now()
result = stop - start
return result
print(function())
0:00:00.001994
如您所见,在1毫秒的睡眠时间下,测得的时间偏离了约100%,并且时间不再精确。
答案 1 :(得分:0)
如果您不需要日期,则可以运行以下命令:
import time
def function():
start_time = time.time()
time.sleep(5)
end_time = time.time()
print(f'Completed in: {end_time - start_time} seconds')
function()
答案 2 :(得分:0)
它在Linux(5.3)下为我做正确的事情,即:
from datetime import datetime
(datetime.now() - datetime.now()).total_seconds()
评估为-8e-06
,这很好。因此,我认为在Windows系统下使用的计时器精度不是很高。我建议对这些短时间使用time.perf_counter()
,datetime
更适合您在关心诸如月之类的晦涩的人类事物时使用。
例如
from time import perf_counter
perf_counter() - perf_counter()
给我大约-2.8e-7,所以我们也将通话时间减少了几百纳秒。