python怎么设置函数超时时间_在python运行时为函数设置超时秒数
我遵循this解。在
我試圖為我的函數during runtime設置超時秒數,這使我能夠靈活地傳遞不同的timeout seconds,甚至不打開腳本(測試.py)在
在超時.py在from functools import wraps
import errno
import os
import signal
class TimeoutError(Exception):
pass
def timeout(seconds=60, error_message=(os.strerror(errno.ETIMEDOUT)).upper()):
def decorator(func):
def _handle_timeout(signum, frame):
raise TimeoutError(error_message)
def wrapper(*args, **kwargs):
signal.signal(signal.SIGALRM, _handle_timeout)
#print "Timeout seconds =: " , seconds
signal.alarm(seconds)
try:
result = func(*args, **kwargs)
finally:
signal.alarm(0)
return result
return wraps(func)(wrapper)
return decorator
在主.py(只接受運行時傳遞的任何參數)
^{pr2}$
在測試.py在from timeout import timeout
from timeout import TimeoutError
#@timeout(30)
@timeout() #
def func(args1,args2,timeout_sec):
#do something
要運行此程序:python main.py abc abc 45 #this overrids seconds from timeout.py
在測試.pytimeout()或timeout(30)可以工作,但是有沒有什么方法可以使它成為動態的,并在@timeout(arg3)中以“arg3”的形式傳遞秒數
我有什么辦法可以做到這一點嗎?在
總結
以上是生活随笔為你收集整理的python怎么设置函数超时时间_在python运行时为函数设置超时秒数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 通过python实现卷积神经网络_Pyt
- 下一篇: 麒麟操作系统配置网络_讲解银河麒麟桌面操