对于 python 中的全局变量,在函数体内只能访问,不可修改。若想修改则需要用 global 关键字声明。
eg:c = 1
def f():print(c)f() # 可执行
c = 1
def g():global c # 在函数体内修改全局变量,需要声明c += 1print(c)g()
定义在函数体内的函数,称为“闭包”。与全局变量原理一致,对于外层函数内的变量,在内层函数只能访问,不能修改。若想修改则需要用 nonlocal 关键字声明。
eg:
def f()b = 1def g():print(b)g()
f() # 可执行
eg:
def f()b = 1def g():nonlocal b # 由于修改了变量b,必须用nonlocal声明b += 1print(b)g()
f()