我正在寻找一种方法让函数根据它执行的时间来执行操作。例如,我的函数会连续循环直到5秒钟,在这种情况下它会立即返回。有什么建议吗?
答案 0 :(得分:5)
你看过time.clock()
吗?
time.clock()
在Unix上,将当前处理器时间返回为以秒为单位的浮点数。精确度,实际上是“处理器时间”含义的定义,取决于同名C函数的精度,但无论如何,这是用于对Python或时序算法进行基准测试的函数。 p>
在Windows上,此函数返回自第一次调用此函数以来经过的挂钟秒,作为浮点数,基于Win32函数QueryPerformanceCounter()。分辨率通常优于1微秒。
使用'time.clock()'来测量Windows上的时间:
>>> import time
>>> def measure():
... t0 = time.clock()
... time.sleep(3)
... return time.clock() - t0
...
>>> measure()
2.9976609581514113
>>>
答案 1 :(得分:4)
另一种选择是使用signal.alarm()和适当的信号处理程序,记录在http://docs.python.org/library/signal.html。这种方法的一个特别优点是不必每次循环都检查时间,这可能会为小而紧密的循环增加显着的开销。