在函数中使用全局变量

发布时间 2023-10-21 22:02:48作者: 小满独家

内容来自 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关键字强制你选择其他行为。

如果你想在模块之间共享全局变量,请查看其他答案。