装饰器作用:
在不改变原函数的情况下,扩展函数功能
def decorator(func): #装饰器核心,以被装饰的函数对象为参数,返回装饰后的函数对象
def wrapper(*args, **kvargs): #装饰的过程,参数列表适应不同参数的函数
... #修改函数调用前的行为
func(*args, **kvargs) #调用函数
... #修改函数调用后的行为
return wrapper
@decorator #给函数加上装饰器
def myFunc(...): #自己定义的功能函数
...
例子:
def begin_end(old):
def newFn(*a,**b):
print('开始执行')
old(*a,**b)
print('执行结束')
return newFn
@begin_end
def add(a,b):
print(a + b)
add(2,3)