Python执行函数X秒
我想找个办法,让一个函数根据它执行的时间来采取不同的行动。比如说,我的这个函数会一直循环,直到经过5秒钟,这时候它就会立刻返回。有没有什么好的建议呢?
2 个回答
5
你有没有看过 time.clock()
呢?
time.clock()
在Unix系统上,这个函数会返回当前处理器的时间,以浮点数的形式表示,单位是秒。它的精确度以及“处理器时间”的具体定义,取决于同名的C语言函数。不过无论如何,这个函数是用来测试Python性能或计时算法的最佳选择。
在Windows系统上,这个函数会返回自第一次调用这个函数以来经过的实际时间(也就是墙钟时间),同样以浮点数的形式表示,基于Win32的函数QueryPerformanceCounter()。它的精度通常好于一微秒。
在Windows上使用 'time.clock()' 来测量时间:
>>> import time
>>> def measure():
... t0 = time.clock()
... time.sleep(3)
... return time.clock() - t0
...
>>> measure()
2.9976609581514113
>>>
4
另一个选择是使用 signal.alarm(),并配合合适的信号处理器,具体的说明可以在这个链接找到:http://docs.python.org/library/signal.html。这种方法的一个特别好处是,你不需要在每次循环的时候都去检查时间,这样可以避免在小而紧凑的循环中增加额外的负担。