📜  python 全局变量 unboundlocalerror - Python (1)

📅  最后修改于: 2023-12-03 14:46:12.764000             🧑  作者: Mango

Python 全局变量 UnboundLocalError

在 Python 中经常会用到全局变量,但有时候会出现 UnboundLocalError 的错误,这是为什么呢?下面我们来探讨一下。

什么是 UnboundLocalError

UnboundLocalError 是一个 Python 异常,通常会在函数内部出现。当在函数内部定义了一个与全局变量同名的局部变量时,如果在该函数内部使用该变量而没有将它赋值,就会抛出 UnboundLocalError 异常。

为什么会出现 UnboundLocalError

当在函数内部定义了一个与全局变量同名的局部变量时,Python 会将它视为一个新的变量,并遮盖了全局变量。如果在函数内部使用该变量而没有将它赋值,Python 就会尝试访问该变量的值,但是它的值还未被定义,就会抛出 UnboundLocalError 异常。

如何解决 UnboundLocalError

为了避免 UnboundLocalError 异常的出现,我们应该善用 global 关键字。global 关键字可以在函数内部访问全局变量,并修改它的值。

下面是一个例子:

x = 10

def func():
    global x
    print(x)
    x = 20
    print(x)

func()

print(x)

输出:

10
20
20

在该例子中,我们使用了 global 关键字来访问并修改全局变量 x 的值,避免了出现 UnboundLocalError 异常。

小结

在 Python 中,当在函数内部定义了一个与全局变量同名的局部变量时,如果在该函数内部使用该变量而没有将它赋值,就会抛出 UnboundLocalError 异常。为了避免这种情况,我们可以使用 global 关键字来访问全局变量。