""" @author: luojunhui """ import time def retryOnNone(): """ 基于None类型数据的重试装饰器 :return: """ def decorator(func): """ :param func: :return: """ max_retries = 10 wait_seconds = 1 def wrapper(*args, **kwargs): """ :param args: :param kwargs: :return: """ for attempt in range(max_retries): response = func(*args, **kwargs) if response['data'] is not None: return response time.sleep(wait_seconds) return None return wrapper return decorator