python中闭包

 

1、定义

如果在一个内部函数里,对在外部作用域但不是全局作用域的变量进行了引用,那么内部函数就被认为是闭包。简言之,就是嵌套函数的环境下,内部函数引用了外部函数的局部变量,这个内层函数就被认为是闭包。

or

在一个外函数中定义了一个内函数,内函数中运用了外函数的局部变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包。

demo:

复制代码
>>> def a(x):             ## 外函数:a(),  内函数:b(),
    def b(y):             ## 内函数b()引用了外函数的局部变量x, 
        print(x + y)
    return b              ## 外函数的返回值是内函数的引用,构成一个闭包

>>> c = a(5)              ## 内函数b()引用外函数的局部变量x, 外函数的返回值是内函数的引用
>>> c(20)
25
复制代码
复制代码
>>> def a(x):
    y = 30
    def b():
        print(x + y)
    return b

>>> c = a(20)
>>> c()
50
>>> d = a(80)
>>> d()
110
复制代码

 

posted @   小鲨鱼2018  阅读(56)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示