如何在函数中创建或使用全局变量?
如何在其他函数中使用在一个函数中定义的全局变量?
未能在适当的地方使用 global
关键字通常会导致 UnboundLocalError
。确切的规则在 UnboundLocalError on local variable when reassigned after first use 中有解释。 .通常,请在寻求解释时将其他问题作为 that 问题的副本关闭,当有人只需要了解 global
时,请关闭 this 问题关键字。
最佳答案
您可以在其他函数中使用全局变量,方法是在为其分配值的每个函数中将其声明为 global
:
globvar = 0
def set_globvar_to_one():
global globvar # Needed to modify global copy of globvar
globvar = 1
def print_globvar():
print(globvar) # No need for global declaration to read value of globvar
set_globvar_to_one()
print_globvar() # Prints 1
由于不清楚 globvar = 1
是创建局部变量还是更改全局变量,Python 默认创建局部变量,并让您使用 global 显式选择其他行为
关键字。
如果您想跨模块共享全局变量,请查看其他答案。
https://stackoverflow.com/questions/423379/