python里,函数无法对全局变量进行直接更改,如果强行更改会报错。
a = 3
def kk():
a = a + 1
print(a)
kk()
报错
UnboundLocalError: local variable 'a' referenced before assignment
此时,使用 global,告诉函数,可以更改全局变量的值
a = 3
def kk():
global a
a = a + 1
print(a)
kk()
此时函数正常打印
4
对于函数嵌套里的子函数,使用nonloacl 来告诉子函数可以更改函数里变量的值