nonlocal 学习:修改函数外层函数包含名字对应的值(不可变类型)
示范1:
x=11 def f1(): x=22 def f2(): x=33 print(x) #输出f2的值 f2() print(x)#输出的是f1的值 f1() print(x)#输出的就是全局的值
33 22 11
示范2:
x=11 def f1(): x=22 def f2(): global x x=33 #局部修改全局的值 print(x) f2() print(x) f1() print(x)
33 22 33
示范3:
x=11 def f1(): x=22 def f2(): nonlocal x #局部修改上一层函数的值 x=33 print(x) f2() print(x) f1() print(x)
33 33 11