闭包
闭包存在的条件:
闭包就是能够读取其他函数内部变量的函数
python里一切皆对象,你甚至可以返回一个函数,把函数赋值给一个变量等。。。
闭包 = 函数+环境变量(函数外部的变量)
例子:
def curve_pre(): a = 25 # 此为环境变量,它在被返回的函数的外面 def cureve(x): return a*x return cureve f = curve_pre() # 此时调用curve_pre返回的是一个闭包(函数+环境变量) print(f(2))结果:50
__closure__闭包方法:返回当前对象的函数的闭包对象:
print(curve_pre().__closure__)或print(f.__closure__)结果:(<cell at 0x0000000000A73078: int object at 0x000000005273D1F0>,)
打印闭包中的环境变量:
print(f.__closure__[0].cell_contents)结果:25
闭包的意义:
闭包保存的是一个函数现场,它返回的不止是函数,还返回了该函数使用需要的环境变量。