share-image
ESC

Python 闭包

什么是闭包

闭包是指绑定外部变量的函数,例如

 def pow_x(x):

def echo(value):

return value**x
return echo


lst = [pow_x(2),pow_x(3),pow_x(4)]

for p in lst:
print(p(2))


特点

1.嵌套函数
2.内部函数用到了外部变量
3.外部函数返回内部函数

4.内部函数不能改变外部变量

5.内部函数用到了外部变量的 list,则可以从外部或内部改变值,并且及时外部没有引用也不会回收。

def pow_x(x):
    
    def echo(value):
        # x = 2   # 如果使用了局部变量,外部参数无论如何也进不来了。
        return value**x
    return echo
    
    
lst = [pow_x(2),pow_x(3),pow_x(4)]
    
for p in lst:
    print(p(2))
文章作者:阿文
文章链接: https://www.awen.me/post/7704.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客
本文于 2018-06-04 发布,已超过半年(2796天),请注意甄别内容是否已过期。