闭包含义:函数内嵌套函数
比如:在一个函数A内又定义了另一个函数B,B函数里面使用到了A函数的变量,而且A函数返回时B函数的引用
实例如图所示 :
函数B中修改了函数A中的X变量,这里用到了nonlocal,否则B函数中不能修改A函数的变量
函数A中返回了B函数的名称
备注 :nonlocal适用于嵌套函数中内部函数修改外部变量的值
闭包的另一个作用:保存函数的状态信息,使函数的局部变量信息依然可以保存下来
实例:
func函数虽然调用了,结束后,但是它的局部变量step信息却被保存了下来
当func外部函数结束的时候,因为自己的临时变量会在将来的内部函数中用到,自己在结束的时候,返回内函数的同时,会把外函数的临时变量送给内函数绑定在一起。所以外函数已经结束了,调用内函数的时候仍然能够使用外函数的临时变量