闭包函数
闭包函数 一、理解闭包须知 1、闭包函数=名称空间与作用域+函数嵌套+函数对象 2、 核心点: 名字的查找关系是以函数定义阶段为准 二、什么是闭包函数 “ 闭”的概念: 闭函数指的是该函数是内嵌函数;打个比方:笼子内放一个小白鼠,小白鼠就是相对于笼子的比函数。 “包的概念:” 包函数指的是该函数包含对外层函数作用域名字的引用(注意:不是对全局的作用域,只是局部的作用域):打个比方:笼子的小白鼠要吃东西,只能在笼子找。 闭包函数:名称空间于作用域的应用+函数的嵌套 def f2(): x = 11111 def f1(): print(x) f1() #f2与f1就是闭包函数,借上述的比喻,f1是相对于f2的闭函数相当于 #笼子的小白鼠,f2是相对于f1的包函数相当于笼子,f1名称的查找只会去 #f2函数体内查找,于其他任何函数定义于调用无关,因为它们都不是f1函数的 #包 x = 22222 def f3(): x = 33333 f2() def f4(): x = 44444 f3() f4() #打印1111 三、闭包函数:函数对象 def f1(): x = 33333333333333333333 def f2(): print('函数f2:',x) return f2 f=f1() print(f) x=4444 f() def foo(): x=5555 f()