Python 中赋值之前引用的局部变量
Muhammad Waiz Khan
2021年4月29日
本教程将说明为什么会发生错误 local variable referenced before assignment
错误,以及如何解决该错误。
在函数体内在赋值之前引用了某个变量时,就会发生 local variable referenced before assignment
。该错误通常在代码尝试访问全局变量时发生。由于全局变量具有全局范围,并且可以从程序中的任何位置进行访问,因此用户通常会尝试在函数中使用全局变量。
在 Python 中,我们不必在使用变量之前声明或初始化该变量。默认情况下,始终将变量视为本地变量。因此,当程序尝试访问函数中的全局变量而未将其指定为全局变量时,代码将返回赋值之前引用的局部变量
错误,因为被引用的变量被视为局部变量。
Python 中 local variable referenced before assignment
错误的解决方案
我们可以在 Python 中使用 global
关键字将变量声明为全局变量。一旦将变量声明为全局变量,程序就可以访问函数中的变量,并且不会发生任何错误。
下面的示例代码演示了程序最终将出现 local variable referenced before assignment
错误的代码情况。
count = 10
def myfunc():
count = count + 1
print(count)
myfunc()
输出:
UnboundLocalError: local variable 'count' referenced before assignment
我们需要使用 global
关键字将 count
变量声明为全局变量,以解决此错误。下面的示例代码演示了如何在上述代码方案中使用 global
关键字解决错误。
count = 10
def myfunc():
global count
count = count + 1
print(count)
myfunc()
输出:
11