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()
非闭包函数

 

posted @ 2018-03-25 16:26  OYxing  阅读(133)  评论(0编辑  收藏  举报