# 包装器(装饰器)
def record(fn):
def wrapper(*args, **kwargs):
print('准备执行%s函数' % fn.__name__)
print(args)
print(kwargs)
# 此行代码在执行被装饰的函数
# 在这行代码的前后我们可以附加其他的代码
# 这些代码可以让我们在执行函数时做一个额外的工作
val = fn(*args, **kwargs)
print('%s函数执行完成' % fn.__name__)
print('返回了%d' % val)
return val
return wrapper
# 通过装饰器修饰f函数 让f 函数在执行过程中可以做更多额外的操作
@record
def f(n):
if n == 0 or n == 1:
return 1
return n * f(n - 1)
@record
def add(x, y):
return x + y
if __name__ == '__main__':
# print(add(2, 3))
print(f(5))
装饰器(包装器)
最新推荐文章于 2023-04-22 16:54:48 发布