写代码时经常遇到这样的需求:某些语句执行时间过长时,需要报错。timeout-decorator
模块可以很方便地实现。使用前先安装:
pip3 install timeout-decorator
这是装饰器,所以对于预先确定的超时时间、用于显示定义的函数,没有问题。对于需要运行时才确定的超时时间,可以参考以下做法:
from timeout_decorator import timeout
import time
seconds = 3
timeout(seconds)(lambda x:time.sleep(x))(1)
timeout(seconds)(lambda x:time.sleep(x))(3)
第一次未超时,第二次超时了,抛出异常:timeout_decorator.timeout_decorator.TimeoutError
。