首页 > 编程语言 >python retry装饰器

python retry装饰器

时间:2022-10-24 15:01:30浏览次数:45  
标签:__ retry python self result time 装饰 def

from functools import wraps
import time

# def retry(retry_time, retry_on_result, time_wait):
#     def test(func):
#         @wraps(func)
#         def wrapper(*args, **kwargs):
#             i = 0
#             while i < retry_time:
#                 i += 1
#                 res = func(*args, **kwargs)
#                 if not retry_on_result(res):
#                     return res
#                 time.sleep(time_wait)
#         return wrapper
#     return test

class retry:
    def __init__(self, retry_time, retry_on_result, time_wait):
        self.retry_time = retry_time
        self.retry_on_result = retry_on_result
        self.time_wait = time_wait
    
    def __call__(self, func):
        @wraps(func)
        def wrapped(*args, **kwargs):
            i = 0
            while i < self.retry_time:
                res = func(*args, **kwargs)
                if not self.retry_on_result(res):
                    return res
                i+=1
                time.sleep(self.time_wait)
        return wrapped


@retry(3, lambda x: x is None, 1)
def test(a):
    print(a)
    return None



if __name__ == "__main__":
    print(test("s"))

  

标签:__,retry,python,self,result,time,装饰,def
From: https://www.cnblogs.com/wender/p/16821459.html

相关文章

  • Python正则表达式(Python RegEx)
    Python正则表达式目录Python正则表达式快速参考函数详解match()search()捕获和分组Match对象sub()compile()findall()finditer()split()参考博客与示例代码快速参考常用......
  • windows下安装dmPython
    环境:OS:Windows10python:3.6.5DM:DM81.windows下安装达梦客户端2.安装dmPythonC:\dmdbms\drivers\python\dmPython>pythonsetup.pyinstallrunninginstallrunnin......
  • Python 中 logging 模块的使用
    Python中logging模块的使用logging模块简介Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。这个模块提供不同的日志级别,并可以采用不同......
  • Python的venv模块
    20221024python的venv可以在制定文件夹下创建一个虚拟环境,不使用的时候删除该文件夹即可。python3-mvenvmyvenv参考:[1]https://blog.csdn.net/weixin_39862899/a......
  • python | 算法-最小生成树-prim算法
    写在前面:我自己用python练习算法与数据结构的典型算法汇总在这里:汇总-算法与数据结构-python版,欢迎翻阅!1️⃣参考链接:https://github.com/algorithmzuo/algorithmbasic......
  • 学习笔记:python学生系统
    python学习学生管理系统问题l={}s={}end=Trueprint("欢迎使用学生信息管理系统!\n""退出请按0\n""加入学生信息请按1\n""查询学生信息请按......
  • 学习笔记:python杨辉三角
    python学习问题输出杨辉三角刚开始着手这题,我先是使用杨辉三角的公式,采用比较简洁的写法进行。defjc(x):r=1forkinrange(1,x+1):r=r*k......
  • 学习笔记:python统计单词数
    python学习问题:统计文章中某个单词出现的次数英文由空格分割开每个单词,所以我采用以下方法:a=str(input("请输入一段英文:"))a=a.lower()b=a.split("")c=str......
  • 学习笔记:python语句try
    python学习使用try在进行读取用户输入时,如果我们想读取一个整型,而用户进行了错误的输入,那么程序便会出错,或者当我们做商时,除数为0;这时便可以采用该代码块,来避免程序报错......
  • python中的“and”、“or”运算规则
    #1、所有变量的位操作都是通过强制转换成bool实现#2、在没有括号的情况下,and优先级高于or#3、计算逻辑:"""xandy表示:ifxisfalse,thenx,elseyxory表......