python之闭包
1. 变量解析规则
# 变量名加载顺序 内置》全局》局部
# 变量名搜索顺序 局部》全局》内置
2. 闭包函数的定义
函数内部定义的函数称为内部函数,该内部函数包含对外部(上层)作用域,而不是对全局作用域名字的,并且外层函数返回了内层函数的引用,那么该内部函数称为闭包函数
闭包函数属性:
*闭包函数是内部函数
* 包含对外部作用域而非全局作用域的引用

3. 闭包的优缺点
优点:闭包优化了变量,原来需要类对象完成的工作,闭包也可以完成
缺点:由于闭包引用了外部函数的局部变量,则外部函数的局部变量没有及时释放,消耗内存
4. 通用闭包
# 通用闭包
def set_func(func):
def call_func(*args, **kwargs):
print("要增加的功能代码")
return func(*args, **kwargs) # 作为实参传入时,需要拆包
return call_func # 返回内层函数的引用
@set_func #等价于 test = set_func(test)
def test():
print("为这个函数增加功能")

浙公网安备 33010602011771号