函数嵌套-变量要注意的地方
1 def one(): 2 a=6 3 def two(): 4 print(a) 5 two() 6 one()
此时输出结果是:6
在内层函数中如果没有找到变量的值,那么程序会自动找离它最近的值,值的变量名要一致,
需要注意的是如果你需要对这个变量进行修改,在不做任何操作的情况下会报错.
下面是几种不同的例子,其原因是一样的.
1 def one(): 2 a=6 3 def two(): 4 a=a+1#需要在这行前加上nonlocal a 5 two() 6 one() 7 8 9 得到的结果是:UnboundLocalError: local variable 'a' referenced before assignment
1 a=6 2 def one(): 3 print(a) 4 one() 5 6 输出结果:6
1 a=6 2 def one(): 3 a=a+1#需要在这行前加global a
4 one() 5 6 输出结果:UnboundLocalError: local variable 'a' referenced before assignment