global
关键字:
global
用于在函数内部声明一个变量的全局作用域。当你在函数内部使用global
关键字声明一个变量时,这个变量会变成全局变量,即使它在函数内部被赋值。这意味着你可以在函数外部访问这个变量,并且对它进行修改。-
x = 10 def my_function(): global x x = 20 my_function() print(x) # 输出 20,因为在函数内部修改了全局变量 x 的值
nonlocal
关键字: nonlocal
用于在嵌套函数中引用外部函数的局部变量。当你在内部函数中使用nonlocal
关键字声明一个变量时,Python会在外部函数的作用域中查找该变量,而不是在全局作用域中查找。-
def outer_function(): x = 10 def inner_function(): nonlocal x x = 20 inner_function() print(x) # 输出 20,因为在内部函数中修改了外部函数的局部变量 x 的值 outer_function()
总结来说,
global
用于声明一个全局变量,使得在函数内部对该变量的修改能够影响到全局作用域;而nonlocal
用于在内部函数中引用外部函数的局部变量,使得在内部函数中对该变量的修改能够影响到外部函数的作用域。