标签:pre 外部 作用 highlight return obj 赋值 python 其他
闭包就是能够读取其他函数内部变量的函数
闭包 = 函数+环境变量(函数外部的变量)
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
闭包保存的是一个函数现场,它返回的不止是函数,还返回了该函数使用需要的环境变量。
标签:pre 外部 作用 highlight return obj 赋值 python 其他
原文地址:https://www.cnblogs.com/scopicat/p/11783024.html