立即学习:https://edu.csdn.net/course/play/24459/296346?utm_source=blogtoedu
闭包现象
def outer(): name = "小猿圈,自学编程" def inner(): print("Inner",name) return inner func = outer() #返回的是inner的内存地址 func() #inner()
当内部的函数返回时引用上一级的变量,所以上一级的作用域也没有释放,叫做闭包现象
颞部函数再外部函数返回后被执行,而当这个内部函数执行时,它仍然必须访问其外部函数的局部变量、参数以及其他内部函数,这些局部变量、参数和函数声明(最初时)的值是外部函数返回时的值,但也会受到内部函数的影响
闭包的意义:返回的函数对象,不仅仅是一个函数对象,在该函数外还包裹了一层作用域,这使得该函数无论在何处调用,优先使用自己外层包裹的作用域