在x时间Python之后停止的函数

在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停止并中断其中的所有内容,然后直接跳到返回结果。因此,我需要的是一种方法,使该函数尽可能长时间地工作(停止时间),然后返回结果变

我在一个Python项目中工作,我需要一个函数在x时间后停止并返回,该函数作为参数传递。一个简单的例子:

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()
的实现改变了您解决这一问题的方式。这本关于
子进程的异步行为的指南
可能会有帮助(),或者这篇关于使用
信号
杀死子进程的文章:()谢谢,我一直在寻找一个异步函数。
睡眠
在这里有什么关系?
睡眠
在这里有什么关系??