a=1
b=1
def add():
b=2
print("add")
print(a)
print(b)
1/0
try:
a=2
add()
except ZeroDivisionError:
print("error")
print(a)
print(b)
finally:
print("finally")
print(a)
print(b)
a 和 b 都被赋值成2了,但是最后打印出:
add
2
2
error
2
1
finally
2
1
这是什么原理,为什么b被还原成1了
add 函数里面定义的 b 是局部变量,并不会修改掉全局变量,可以像这样修改全局变量