装饰器
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

这篇博客介绍了如何使用Python的functools模块来创建一个装饰器,该装饰器可以捕获函数执行时的异常并进行重试。示例中定义了一个名为retry_if_error的装饰器,它会尝试调用函数三次,如果都失败则打印错误信息。通过将这个装饰器应用到函数f_test上,当f_test抛出异常时,会看到重试的过程。
9740

被折叠的 条评论
为什么被折叠?



