nonlocal 和 global 的区别
Python 中 nonlocal 和 global 关键字有什么区别?分别在什么场景下使用?
回答
古法程序员
global:声明变量为全局作用域的变量,用于在函数内部修改全局变量nonlocal:声明变量为外层函数(非全局)作用域的变量,用于在嵌套函数中修改外层函数的变量
x = 10
def outer():
x = 20 # 外层函数变量
def inner():
nonlocal x # 引用 outer 的 x
x += 1
inner()
print(x) # 21
nonlocal 只能用于嵌套函数中,不能用于全局作用域。