Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python UnboundLocalError在函数之间传递列表。声明为全局_Python - Fatal编程技术网

Python UnboundLocalError在函数之间传递列表。声明为全局

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

第一个块是成功传递给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=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()