像这样使用time 模块:
import time
time_start = time.time()
#Do function stuff
time_stop = time.time()
#Check your time now
timed_segment = time_stop - time_start
#Repeat if needed
要在 for 循环中多次运行,您需要在运行时将时间附加到列表中:
import time
def function():
times_list = []
for x in range(10)
time_start = time.time()
#Do function stuff
time_stop = time.time()
#Check your time now
timed_segment = time_stop - time_start
times_list.append(timed_segment)
#Repeat as many times as needed
return times_list
如果您想在一段时间后break,您可以使用while 循环,如下所示:
import time
def function():
times_list = []
time_start = time.time()
time_end = time.time()
while time_end - time_start < 10: #after 10 seconds the while loop will time out
#Your function does stuff here
time_end = time.time()
#Next, append times to a list if needed
time_list.append(time_start - time_end)
return times_list
要在一段时间后停止该功能,无论它在哪里,我们都可以像这样使用threading:
import threading
from time import sleep
def do_stuff():
sleep(10)
print("1 + 2")
return
t = threading.Thread(target=do_stuff)
t.start()
t.join(timeout = 5)
在上面的例子中,在join 中调用timeout 会在5 秒后杀死线程。如果我们打算像这样多次重用它,我们也可以将它放入装饰器中:
import threading
from time import sleep
def timeout(func):
def inner_func(*nums, **kwargs):
t = threading.Thread(target=func, args=(*nums,))
t.start()
t.join(timeout=5)
return inner_func
@timeout
def do_stuff(a,b):
sleep(3)
print(a+b)
return
do_stuff(1,3)