python局部变量定义后(内有global),无法打印
cnt = 1
def func(x):
global cnt
tmp = cnt
cnt = x
x = tmp
func(2)
print (cnt)
#以上输出为2
将第一句cnt = 1 剪掉后,只用局部变量
def func(x):
global cnt
tmp = cnt
cnt = x
x = tmp
func(2)
print (cnt)
而因为变量里面加了global,而且也调用了func(2),为什么最下面print(cnt)后输出为出错?
而将内部变量变一下
def func(x):
global cnt
cnt = x
func(2)
print(cnt)
这样输出值又变回2了,谁能讲讲原理吗?
本人己想通,既然要删除全局变量cnt = 1,那么局部变量CNT=多少就都没有意义了,也不用global强制变全局了。
推荐文章: