示例代码:
def fn1():
....a = 11
....def fn2():
........a = 22
........def fn3():
............nonlocal a
............print(a)
........return fn3
....return fn2
a = 0
f2 = fn1()
f3 = f2()
f3()
在这段代码中,在函数fn3()中对变量a使用nonlocal,打印结果是22,也就是a在上一层函数fn2()中的环境变量a=22。如果对a使用global,打印的结果则是全局变量a = 0;
求教,如何在函数fn3内部得到最外层函数fn1的环境变量a=11?谢谢~