Python UnboundLocalError在函数之间传递列表。声明为全局
第一个块是成功传递给CheckGaps的函数的一部分 然而,我收到:Python UnboundLocalError在函数之间传递列表。声明为全局,python,Python,第一个块是成功传递给CheckGaps的函数的一部分 然而,我收到: global GearsList;GearsList=[] if len(DuplicateList)>0: for i in DuplicateList: GearsList.append(i) for j in UniqueList: GearsList.append(j) CheckGaps(); GearsList=[] else: GearsList=UniqueList file=op
global GearsList;GearsList=[]
if len(DuplicateList)>0:
for i in DuplicateList:
GearsList.append(i)
for j in UniqueList:
GearsList.append(j)
CheckGaps(); GearsList=[]
else:
GearsList=UniqueList
file=open('GearsList.csv','w')
for z in GearsList:
print>>file,z
file.close()
CheckGaps()
def CheckGaps():
GearsList.sort(key=lambda x:x[1]); list1=[]; base=''
当我宣布“全球GearsList”和GearsList.csv是:
UnboundLocalError: local variable 'GearsList' referenced before assignment
作为一个实验,我写了下面这篇文章,没有错误
(7, 2.8238952201055705, 8, 2.563397837907839, 1.1016219091494361)
(7, 1.0953215668837057, 8, 1.256834873031462, 0.8714920236433373)
我一定错过了什么明显的东西。出了什么问题?因为您没有提供足够的问题背景,所以无法回答。您应该告诉我们该函数或方法试图调用CheckGaps()的模块和包是什么,函数、模块和包的名称是什么,并向我们显示确切的堆栈跟踪。对不起,也许我不是最清楚的。不管怎样,作为一个实验,我用“bob”代替了GearsList,它起作用了。我仍然不认为GearsList名称有问题,但应该能够解决它。
def CheckRatios():
global GearsList;GearsList=[]
DuplicateList=[]; UniqueList=[]
if len(DuplicateList)>0:
for i in DuplicateList:
GearsList.append(i)
for j in UniqueList:
GearsList.append(j)
CheckGaps(); GearsList=[]
else:
GearsList.append((7, 2.8238952201055705, 8, 2.563397837907839, 1.1016219091494361))
GearsList.append((7, 1.0953215668837057, 8, 1.256834873031462, 0.8714920236433373))
file=open('GearsList.csv','w')
for z in GearsList:
print>>file,z
file.close()
CheckGaps()
def CheckGaps():
GearsList.sort(key=lambda x:x[1]); list1=[]; base=''
for i in GearsList:
print i
print " It worked."
CheckRatios()