x = 10
def func():
global x
x = 20
func()
print(x) # 因为global声明全局,所以打印20
2.2 nonlocal: 在函数内, 声明名字是来自于外层函数的
x = 333
def f1():
x = 111
def f2():
# global x # 只会改全局的x=333,不管外层的x=111
nonlocal x # 改的外层的x=111,不会改全局的x=333,外层没有x=111则语法错误
x = 222
f2()
print(x)
f1()
print(x)