【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()

   

参考文献

https://www.cnblogs.com/zhaijiahui/p/8398480.html

https://www.cnblogs.com/komean/p/11209780.html

原文地址:https://www.cnblogs.com/yifanrensheng/p/14175406.html