首先看一个简单的例子:
def outer():
name = 'outer'
def inner():
print("在inner里打印外层函数的变量",name)
return inner
f = outer()
f()
函数定义和函数表达式位于另一个函数的函数体内,并且,这些函数内部可以访问它们所在的外部函数中声明的所有局部变量和参数,当这样一个内部函数被它所在的外部函数之外调用时,就会形成闭包
闭包的意义:返回的函数对象,不仅仅是一个函数对象还在外层包裹了一层作用域,这使得函数无论在哪里被调用,都优先使用自己外层包裹的作用域
网友评论