闭包
例子
代码均以python3为例。
函数f1
内部定义一个函数f2,并且f1函数返回值为内部函数f2,这样在内部函数f2中就可以使用外部函数f1定义的变量a了。以下程序运行结果为4。
def f1():
a = 1
def f2():
b = 1
c = a + 1
return a + b + c
return f2
f3 = f1()
print(f3())
但是,注意在f2函数中不能修改变量a,如果把f2函数中的语句‘c=a+1'修改成'a=a+1',则会报错。
def f1(): a = 1 def f2(): b = 1 a = a + 1 return a + b