在x时间Python之后停止的函数
我在一个Python项目中工作,我需要一个函数在x时间后停止并返回,该函数作为参数传递。一个简单的例子:在x时间Python之后停止的函数,python,function,time,Python,Function,Time,我在一个Python项目中工作,我需要一个函数在x时间后停止并返回,该函数作为参数传递。一个简单的例子: def timedfunc(time_to_stop): result = None while (time_has_not_passed): do() return result 我解释: 当时间过去时,timedfunc停止并中断其中的所有内容,然后直接跳到返回结果。因此,我需要的是一种方法,使该函数尽可能长时间地工作(停止时间),然后返回结果变
def timedfunc(time_to_stop):
result = None
while (time_has_not_passed):
do()
return result
我解释:
当时间过去时,timedfunc
停止并中断其中的所有内容,然后直接跳到返回结果
。因此,我需要的是一种方法,使该函数尽可能长时间地工作(停止时间
),然后返回结果
变量,该变量尽可能精确(更多时间,更多计算,更精确)。当然,当超时时,do()
也会停止。为了更好地理解,我说函数在不断地更改结果的值,一旦时间过去,它就会返回当前值。(do()
表示所有更改结果的计算
)
我只是举了一个简单的例子来更好地解释我想要什么:
def multiply(time):
result = 10
while time_has_not_passed:
temporary = result*10 #Actually much more time-consuming, also like 3 minutes.
temporary /= 11
result = temporary
return result
这就解释了do()
会进行什么样的计算,我需要尽可能多的*10/11,比如说,python可以在0.5秒内完成。
我知道这很复杂,但任何帮助都会很好
import time
start_time = time.time()
program()
if (time.time()-start_time)>0.5: #you can change 0.5 to any other value you want
exit()
是这样的。您也可以将这个if语句放在程序函数中
是这样的。您也可以将此if语句放在程序函数中。也许您可以使用:
time.sleep(x)
do()
# OR
now = time()
cooldown = x
if now + cooldown < time():
do()
也许你可以使用:
time.sleep(x)
do()
# OR
now = time()
cooldown = x
if now + cooldown < time():
do()
该函数如何以定时方式执行某些操作?它已经异步了吗?如果是这样的话,您可能知道这是如何工作的函数do()实际上所做的与这里的问题相关,您能详细说明吗?类似于Olivier的观点:do()
的实现改变了您解决这一问题的方式。这本关于子进程
异步行为的指南可能会有帮助(),或者这篇关于使用信号
杀死子进程的文章:()谢谢,我一直在寻找一个异步函数。这个函数是如何以定时方式做事情的?它已经异步了吗?如果是这样的话,您可能知道这是如何工作的函数do()实际上所做的与这里的问题相关,您能详细说明吗?类似于Olivier的观点:do()
的实现改变了您解决这一问题的方式。这本关于子进程的异步行为的指南
可能会有帮助(),或者这篇关于使用信号
杀死子进程的文章:()谢谢,我一直在寻找一个异步函数。睡眠
在这里有什么关系?睡眠
在这里有什么关系??