""" 闭包函数的条件; 1、存在嵌套函数中; 2、嵌套函数的内层函数要引用外部函数的变量; 3、嵌套的外层要将内层函数的函数名作为返回值进行返回; 闭包函数的优势: 隐藏嵌套函数中的内存函数的调用代码; 同时可以保护代码不被外部程序访问或者修改; """ #定义一个闭包函数 def func1(): num =1 def func2(): nonlocal num num+=5 print(num) return func2 #与普通的嵌套函数不一样的点:闭包的外层函数会将内层函数的函数名(不带括号)作为返回值返回; #调用内层函数的方法一: func1()() #retunrn返回func2后,“func1()() "变成:func2(),从而来调用内层函数; #调用内层函数的方法二: 用变量名接受外层函数的返回值,再用变量名调用内层函数 a=func1() a()