Python执行函数X秒

1 投票
2 回答
2636 浏览
提问于 2025-04-15 23:55

我想找个办法,让一个函数根据它执行的时间来采取不同的行动。比如说,我的这个函数会一直循环,直到经过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。这种方法的一个特别好处是,你不需要在每次循环的时候都去检查时间,这样可以避免在小而紧凑的循环中增加额外的负担。

撰写回答