栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python篇 闭包

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python篇 闭包

闭包

闭包是一种现象,是弱数据类型语言所有特有的一种现象,个人理解为在函数内部调用其他函数变量的现象叫闭包(函数里面的变量是局部变量,作用域只有在函数本身),闭包就是函数包裹着函数的现象

例子说明:

def outer():
    """
    这一一个闭包函数
    :return:
    """
    print("这是一个闭包函数。")
    a = 10
    def inner():
        print("这是里面")
        b = 20
        print(a + b)
    return inner

res = outer()
print(res)
res()
这是一个闭包函数。
.inner at 0x00000045140939D0>
这是里面
30

函数调用本质就ter是压栈的过程,res=outer()调用outer()函数的时候就是压栈,当执行玩print(res)后,就会弹栈,函数的局部变量就会被垃圾回收机制回收,但inner()函数里面要使用变量a,如果按照征程流程进行回收a,就会报错,但并没有报错,也就是说明变量a并没有被回收。

结论:闭包让外围的函数常驻内存,导致垃圾不能及时释放,但是让局部变量变成了全局变量。所以说尽量不要使用闭包。在js中闭包使用比较广泛,而在python中使用较少,一般用在装饰器中。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/655857.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号