def wrapper(f): # 装饰器函数,f是被装饰的函数
def inner(*args, **kwargs):
'''在被装饰函数之前要做的事'''
print(args)
ret = f(*args, **kwargs) # 被装饰的函数
print(kwargs)
'''在被装饰函数之后要做的事'''
return ret
return inner
def fun(a,b,c,k,m):
return a+1
print(wrapper(fun)(2,6,9,m=6,k=1))
输出:
(2, 6, 9)
{'m': 6, 'k': 1}
3
使用符号简化表达,进行自动封装:
def wrapper(f): # 装饰器函数,f是被装饰的函数
def inner(*args, **kwargs):
'''在被装饰函数之前要做的事'''
print(args)
ret = f(*args, **kwargs) # 被装饰的函数
print(kwargs)
'''在被装饰函数之后要做的事'''
return ret
return inner
@wrapper
def fun(a,b,c,k,m):
return a+1
print(fun(2,6,9,m=6,k=1))
输出为:
(2, 6, 9)
{'m': 6, 'k': 1}
3