对异常函数进行重试数次

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

def retry(times=1,exceptions=None):
    exceptions = exceptions if exceptions is not None else Exception
    def wrapper(func):
        def wrapper(*args,**kwargs):
            last_exception =None
            for _ in range(times):
                try:
                    return func(*args, **kwargs)
                except exceptions as e:
                    last_exception = e
            raise last_exception
        return wrapper
    return wrapper

if __name__=="__main__":
    @retry(5)
    def test():
        print("do something")
        raise Exception
    test()