什么是闭包
简单说,闭包就是根据不同的配置信息得到bai不同的结果再来看看专业的解释:闭包(Closure
)是词法闭包(LexicalClosure
)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。
现在我们已经了解了什么是闭包,那我们接下来就进入主题环节:
延迟绑定
由于闭包函数返回了内部函数的引用,外函数条用结束是会将其作用域内,被内函数引用的局部变量(也称之为闭包变量)绑定到内函数。延迟绑定是值只有在调用内函数时才会访问闭包变量锁指向的对象,不调用时不会访问闭包变量所指向的对象,看下面案例:
def multipliers():
return [lambda x : i*x for i in range(4)]
print ([m(2) for m in multipliers()] )
输出:[6