# python 中的闭包
#n = 10 #定义全局作用域变量
def count(func): #形成闭包
n = 0 #定义局部变量n
def inner():
nonlocal n# python3 中新增nonlocal 关键字可以调用上层作用域中的变量
n += 1 #这里定义操作相同变量n无法调用上层作用中的变量,如果只读不写则可以正常访问
func()
print(n)
# inner()
return inner #返回内嵌函数的地址,从而形成闭包
#形成闭包的条件
#1、必须要有一个内嵌函数
#2、内嵌函数中要对自由变量的引用
#3、外部函数必须返回内嵌函数
#使用闭包统计函数执行的次数
@count
def my_gec():
print(666666)
my_gec()
my_gec()
my_gec()
my_gec()
python 闭包
最后发布:2020-02-22 18:25:02首次发布:2020-02-22 18:25:02