内容来自 DOC https://q.houxu6.top/?s=在函数中使用全局变量
如何在函数内部创建或使用全局变量?
如何在其他函数中使用在其中一个函数中定义的全局变量?
如果不适当地使用global
关键字,通常会导致UnboundLocalError
。关于这个错误的精确规则已在UnboundLocalError on local variable when reassigned after first use处解释。一般来说,当需要解释时,请将其他问题关闭为该问题的重复问题,当某人只需要知道global
关键字时,请关闭这个问题。
你可以在其他函数中使用全局变量,方法是在为它分配值的每个函数中将其声明为global
:
globvar = 0
def set_globvar_to_one():
global globvar # 需要修改globvar的全局副本
globvar = 1
def print_globvar():
print(globvar) # 不需要全局声明来读取globvar的值
set_globvar_to_one()
print_globvar() # 输出1
由于不清楚globvar = 1
是创建局部变量还是更改全局变量,Python默认创建局部变量,并使用global
关键字强制你选择其他行为。
如果你想在模块之间共享全局变量,请查看其他答案。