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"))

  

最新文章

  1. 未在本地计算机上注册“Microsoft.Jet.OleDb.4.0”提供程序。解决办法
  2. wireshark常用命令
  3. vim学习
  4. Android清除本地数据缓存代码案例
  5. 【转】shell脚本处理字符串的常用方法
  6. Css简介
  7. ASP.NET之电子商务系统开发-1(数据列表)
  8. 【转】 一个fork的面试题
  9. signedCookies
  10. python自动发邮件
  11. SQL Server查询重复数据
  12. 读《Tooth-Marked Tongue Recgnition Using Multiple Instance Learning and CNN Features》
  13. NodeJS笔记(二)- 修改模块默认保存路径
  14. 把源码放到服务器部署webservice调用出错 MVC C#
  15. topcoder srm 690 div1 -3
  16. PAT甲题题解-1014. Waiting in Line (30)-模拟,优先级队列
  17. ECShop 调用自定义广告
  18. 深入源码分析Java线程池的实现原理
  19. 【BZOJ1502】[NOI2005]月下柠檬树 Simpson积分
  20. (暂时弃坑)(半成品)ACM数论之旅18---反演定理 第二回 Mobius反演(莫比乌斯反演)((づ ̄3 ̄)づ天才第一步,雀。。。。)

热门文章

  1. Vue-cli创建的项目结构分析,各初始化文件解释说明
  2. LCD1602液晶屏(续)
  3. Google Earth Engine——基于新的Landsat SR数据集去云处理
  4. MySQL查询 根据时间字段的值的时分秒进行查询
  5. 均值、中值、高斯、non-local means算法详解
  6. Java中静态方法和实例方法
  7. C# 海康威视网络半球摄像头回调YV12取画面
  8. spring mvc问题:源服务器未能找到目标资源的表示或者是不愿公开一个已经存在的资源表示
  9. git多分支-git远程仓库-ssh方式连接远程仓库-协同开发-冲突解决-线上分支合并-远程仓库回滚
  10. FPGA 原理、结构、开发流程简述