【E-22】UnboundLocalError: local variable 'xxx' referenced before assignment
一、问题源头
函数内部使用了和函数外部同名的变量,程序不能识别。
简化下:
def run():
for i in range(10):
x.append(i)
# 打印x
print(x)
# 调用函数
run()
二、原因
对于一个全局变量,如果在函数内部,没有对该变量进行全局声明,则变量就会被Python解释器认为是局部变量而非全局变量。
因此,在函数内需要再次对该变量进行全局声明:
三、解决方案
def run():
global x
for i in range(10):
x.append(i)
# 打印x
print(x)
# 调用函数
run()