一次执行只作用一次的方法
对于多处会调用,而只需要执行一次的方法来说(比如多个地方依赖某个配置信息,而使用的时候需要先检查配置信息是否过期,这种检查更新当然是一次就ok),使用以下方法即可。
def run_once(func2=None):
'''
将此注解作用于某方法即可,这里还可以添加第2-n次执行其他方法
:param func2: 可选.
:return:
'''
def wrap(func):
@wraps(func)
def inner(*args, **kwargs):
try:
func.xxxxx
raise ValueError
except AttributeError:
func.xxxxx = 0
return func(*args, **kwargs)
except ValueError:
if func2 is not None:
return func2(*args, **kwargs)
else:
pass
return inner
return wrap

浙公网安备 33010602011771号