[英]End a Python function after a certain time?
例如,我有以下功能:
some_global_varible = ""
def bob(some_argument, some_more):
import time
for x in range(10):
print("Working")
time.sleep(1)
return "I finished and this is my result"
我如何才能在一定时间内运行此功能,如果还没有结束,就不能运行它。 但是,如果完成,则获取返回值的输出(如果为1,因为可能没有任何结果,并且只是结束)。
同样,它也不会在Unix中运行,因为我看到了一些在Windows中无法运行的Unix示例。 同样,如果您可以在函数内部更改全局变量形式,那将是完美的,但这是额外的。
首先是剩下的,如果可能的话(如果没有返回就无法检测到结束,那没关系,我可以在那之前加上一个返回。例如:return“ This is for end”)
编辑: “鲍勃”功能是一个功能的示例,该功能需要10秒钟,但计划是在其他功能上使用它,这可能会花费不确定的时间。 而且该函数无法进行编辑,只能添加一些东西以在某些时候停止它。
一个更好的例子可能是“ pep”,因为它本身不会结束。
def pep():
import time
while True:
print("Working")
time.sleep(1)
您可以使用time.time()来获取当前时间(以秒为单位),然后再开始循环,然后在每个for循环的末尾,检查从那时起经过了多长时间;如果时间过长,则可以返回。
def bob(some_argument, some_more):
import time
start = time.time()
for x in range(10):
print("Working")
time.sleep(1)
if time.time() - start > 5:
return "I took too long"
return "I finished and this is my result"
显然将5替换为您要使用的时间,但是这段代码为我提供了以下输出:
Working
Working
Working
Working
Working
'I took too long'
您可以使用休息时间;
例如,如果循环计数器的值满足以下条件:
if condition:
break;
这肯定会结束循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.