美文网首页
如何将Python的一个函数进行超时限制

如何将Python的一个函数进行超时限制

作者: testerzhang | 来源:发表于2020-08-28 08:36 被阅读0次

本文转自我的头条号:testerzhang,现同步自我的简书。

前言

当我们写的一个函数,耗时太久,想对它进行超时处理,那么今天分享的库就适合你。

如何将Python的一个函数进行超时限制

Timeout decorator

一个处理超时的装饰器,只需要在你想要的函数前面加上这个装饰器,就可以设置超时时间,如果超过了容忍的超时时间,那么程序将抛异常。

安装Python库

pip3 install timeout-decorator
如何将Python的一个函数进行超时限制

官方例子

import timeout_decorator


@timeout_decorator.timeout(5)
def mytest():
    print("Start")
    for i in range(1, 10):
        time.sleep(1)
        print("{} seconds have passed".format(i))


def main():
    mytest()


if __name__ == '__main__':
    main()

执行结果:

如何将Python的一个函数进行超时限制

扩展1

如果指定抛错的异常信息,也是可以的。

将下面的装饰器语句

@timeout_decorator.timeout(5)

改成如下的异常内容StopIteration

@timeout_decorator.timeout(5, timeout_exception=StopIteration)

执行结果:

如何将Python的一个函数进行超时限制

扩展2

如果采用多线程,会无法使用这个库,因为默认是通过signals来限制超时。

如何将Python的一个函数进行超时限制

这时候我们要增加一个use_signals=False参数。

@timeout_decorator.timeout(5)

改成

@timeout_decorator.timeout(5, use_signals=False)

执行结果:

如何将Python的一个函数进行超时限制

看到这里,你是否学会了如何快速的让一个函数超时抛异常?相信你学会了,因为很简单的装饰器就能帮到你。

码字不易,希望大家尊重原创,转载请注明来处,也欢迎大家关注下我的头条号@testerzhang。

如何将Python的一个函数进行超时限制

相关文章

  • 如何将Python的一个函数进行超时限制

    本文转自我的头条号:testerzhang,现同步自我的简书。 前言 当我们写的一个函数,耗时太久,想对它进行超时...

  • Python 实现列表切分

    如何将一个列表分成多个小列表呢,对于 str Python 提供了 partition 函数,但 list 没有,...

  • mysql设置sql最大时长

    mysql 5.6 及以后,有语句执行超时时间变量,用于在服务端对 select 语句进行超时时间限制;mysql...

  • python限制函数执行次数

    前段时间面试python岗位,遇到一个问题,如何限制函数在指定时间内只运行一次?这个问题考得的python修饰函数...

  • python 内置函数Built-in Functions

    python 内置函数文档链接 尝试将python的内置函数进行解释及分类

  • python 函数超时调用

    import timeimport signal def test():while(True):print "11...

  • 类型注解

    一.函数注解 Python3.5 引入 对函数的参数进行类型注解 对函数的返回值进行类型注解 只对函数参数做一个辅...

  • sorted

    Python内置的sorted()函数就可以对list进行排序: 此外,sorted()函数也是一个高阶函数,它还...

  • Python 文件读写

    或者 或者使用Python内置函数 .strip() 和 .split()函数,进行分割比如:由于在python...

  • 12、函数式编程(二)

    12.1 python中自定义排序函数 Python内置的sorted()函数可对list进行排序: >>>sor...

网友评论

      本文标题:如何将Python的一个函数进行超时限制

      本文链接:https://www.haomeiwen.com/subject/tzpksktx.html