我正在调用Python中的一个函数,我知道它可能会停止并迫使我重新启动脚本.
如何调用该函数或我将其包装成什么,以便如果它花费的时间超过5秒,脚本会取消它并执行其他操作?
我正在使用这里提到的代码解决方案。
我是装饰人员的新手,如果我要编写以下内容,则不明白为什么该解决方案不起作用:
@timeout(10)
def main_func():
nested_func()
while True:
continue
@timeout(5)
def nested_func():
print "finished doing nothing"
Run Code Online (Sandbox Code Playgroud)
=>这样的结果将根本没有超时。我们将陷入无限循环。
但是,如果我@timeout从中删除注释,则会nested_func收到超时错误。
由于某种原因,我们不能同时在函数和嵌套函数上使用装饰器,任何想法为何以及如何能够使其正常工作,假设包含函数的超时必须始终大于嵌套的超时。