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