def a(c):
def b():
c=c+1
return c
a1 = a(0)
a1()
a1()
a2 = a(0)
a2()
a2()
自由变量:函数中出现的变量,既不是函数的参数也不是局部变量,这个变量称为自由变量
约束变量:参数和局部变量
闭包根据函数定义时的环境设置自由变量初始值,之后以约束变量的方式处理。由于他消除了自由变量,使函数闭合,顾名闭包。
ref 两周自制脚本语言
def a(c):
def b():
c=c+1
return c
a1 = a(0)
a1()
a1()
a2 = a(0)
a2()
a2()
自由变量:函数中出现的变量,既不是函数的参数也不是局部变量,这个变量称为自由变量
约束变量:参数和局部变量
闭包根据函数定义时的环境设置自由变量初始值,之后以约束变量的方式处理。由于他消除了自由变量,使函数闭合,顾名闭包。
ref 两周自制脚本语言