📅  最后修改于: 2023-12-03 14:48:09.852000             🧑  作者: Mango
UnboundLocalError 是 Python 中常见的错误之一。当尝试访问一个函数内的局部变量,但该变量未被初始化或赋值时,就会抛出该错误。
def foo():
print(x)
x = 1
foo()
运行上述代码会抛出 UnboundLocalError,因为函数内的变量 x 在使用前未被初始化。
在 Python 的函数中,所有赋值语句都会将变量解释为局部变量。如果在该函数中对未初始化的局部变量进行访问,则会抛出 UnboundLocalError。
x = 1
def foo():
print(x)
x = 2
foo()
运行上述代码同样会抛出 UnboundLocalError。这是因为函数中的 x 被解释器认定为局部变量,不会与全局变量 x 发生重叠,因此在使用前需要被初始化。
避免 UnboundLocalError 的方法是在函数执行前,对所有局部变量进行初始化或赋值。如果在函数执行期间需要修改全局变量,则应在赋值语句中使用 global 关键字。
x = 1
def foo():
global x
print(x)
x = 2
foo()
print(x) # 输出 2
UnboundLocalError 是 Python 中常见的错误之一,表示访问一个未被初始化或赋值的局部变量。避免该错误的方法是对局部变量进行初始化或赋值,并在需要修改全局变量时使用 global 关键字。