python-闭包的理解

Posted OYxing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python-闭包的理解相关的知识,希望对你有一定的参考价值。

闭包怎样理解?

  如果在一个函数内部,嵌套了函数,这个内部函数对(非全局作用域)外部作用域的变量进行引用,那么这个内部函数称为闭包。

  闭包每次运行是能记住引用的外部作用域的变量的值。

# 闭包的意义:返回的函数对象,不仅仅是一个函数对象,
# 在该函数外还包裹了一层作用域,这使得,该函数无论在何处调用,
# 优先使用自己外层包裹的作用域


def bibao():
    x = 20
    
    def inner():  # 闭包函数
        print(x)
    return inner()


bibao()
闭包函数

 

  怎样理解:

  1.在bibao()函数里嵌套了inner()函数,

  2.这个inner()函数对其外部非全局变量x的变量进行引用,

  3.这个内部函数称为闭包。

  4.闭包每次运行都能记住应用的外部作用于变量x的值。

name = \'egon\'


def func2():
    def inner():
        print(name)
    return inner()

func2()
非闭包函数

 

以上是关于python-闭包的理解的主要内容,如果未能解决你的问题,请参考以下文章

python闭包和装饰器的理解

JS---闭包

轻松理解python中的闭包和装饰器 (下)

python中对变量的作用域LEGB闭包装饰器基本理解

闭包(python)

python-闭包的理解