我有一个python函数,它有一个循环,可能会落入infinte循环。如果超过时间限制,比如说10秒,我想终止功能并打印错误
例如,这是包含无限循环的函数
def myfunc(data):
while True:
data[0]+=10
return data
data=[57,6,879,79,79,]
在这里呼叫
打印(myfunc(数据((
我希望它完全终止进程并打印消息。我正在修窗户。
任何参考资料或资源都会有所帮助。
感谢
也许您可以尝试使用func-timeout
Python包。
您可以使用以下命令安装它:
pip install func-timeout
此代码将解决您的问题"如果超过时间限制,比如说10秒,我想终止函数并打印错误;
from time import process_time as timer
def whatever(function):
start = timer()
infinite loop here:
end = timer()
(your code here)
if end >= 10:
print(whatever)
return
细分:对于时间模块,有几个选项可以执行此操作
在程序开始时导入方法
。在(无限循环(开始时,start=timer((将调用process_time并将值保存为start
end=timer((将继续发送对process_time存储新值的调用
如果end>=10:将在每次循环迭代时继续检查计数
打印(无论什么(
如果在下一次循环检查时时间超过10秒,返回将通过转义自动终止函数。
这并没有说";如何停止process_time";如果它继续在后台运行,并且你必须在上停止它,那么它就会被称为idk。但这应该会回答你的问题。你可以根据我给你的进一步调查
注意:这不是为了生成"精度";需要找到一种更复杂的方法