Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python的Ruby超时?_Python_Ruby_Timeout - Fatal编程技术网

Python的Ruby超时?

Python的Ruby超时?,python,ruby,timeout,Python,Ruby,Timeout,有人知道在Python中实现类似Ruby超时的函数的好方法吗?我在谷歌上搜索过,没有看到什么好东西。谢谢你的帮助 这里有一个指向Ruby文档的链接 发件人: 我想将其修改为可用作装饰。请参阅 def timeout(func, args=(), kwargs={}, timeout_duration=1, default=None): import threading class InterruptableThread(threading.Thread): de

有人知道在Python中实现类似Ruby超时的函数的好方法吗?我在谷歌上搜索过,没有看到什么好东西。谢谢你的帮助

这里有一个指向Ruby文档的链接

发件人:


我想将其修改为可用作装饰。请参阅
def timeout(func, args=(), kwargs={}, timeout_duration=1, default=None):
    import threading
    class InterruptableThread(threading.Thread):
        def __init__(self):
            threading.Thread.__init__(self)
            self.result = None

        def run(self):
            try:
                self.result = func(*args, **kwargs)
            except:
                self.result = default

    it = InterruptableThread()
    it.start()
    it.join(timeout_duration)
    if it.isAlive():
        return default
    else:
        return it.result