函数进阶之闭包函数和装饰器
闭包函数
把函数A和变量x包在函数B内部,然后通过函数B的返回值返回除函数A对象
def B(x):
# x = 1
def A():
print(x)
pass
return A
装饰器
用来给函数加功能,他的本质也是函数
1.不改变被装饰函数的源代码
2.不改变被装饰函数的调用方式
def outter(func):
def wrapper(*args,**kwargs):
#逻辑
res = func(*args,**kwargs) # func是被装饰的函数
return res
return wrapper
@outter
def index():
pass
def sanceng(engine):
def outter(func):
def warpper(*args,**kwargs):
# 逻辑
res = func(*args,**kwargs) # func是被装饰的函数
return res
return warpper
return outter
@sanceng
def index():
pass