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 @ 2021-03-05 22:25  小鲨鱼2018  阅读(54)  评论(0编辑  收藏  举报