装饰器
import functools
def retry_if_error(f):
@functools.wraps(f)
def inner(*args, **kwargs):
remain_times = 3
while remain_times > 0:
try:
return f(*args, **kwargs)
except Exception as e:
print(e)
remain_times -= 1
if remain_times <= 0:
print("error")
return inner
示例:
@retry_if_error
def f_test(a):
if a>=0:
raise Exception("111")
else:
print(a)
调用这个函数
f_test(1)
# 结果
111
111
111
error