繁体   English   中英

一定时间后结束Python函数?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM