UnboundLocalError:在assignmen之前引用了局部变量“list1”

2024-09-29 23:15:33 发布

您现在位置:Python中文网/ 问答频道 /正文

我不是在写我的全部代码。但这是我犯错误的主要部分。在

我在T类中有两个函数。我在第一个函数中声明全局变量,并在第二个函数中使用该变量。我不能在第二个函数中更改全局变量的值,尽管我可以修改它。在

我得到以下错误:UnboundLocalError:赋值之前引用了局部变量“list1” 我在最后一行出错了。如果我把它取下来,它能正常工作。在

    class T:

       def selectAllCities(self):
            global a,b,list1,list2
            a = T.cities()
            b = T.population()
            list1 = [a,b]
            list2 = [[],[]]
            return a,b,list1,list2

        def printcities(self,attribute,*argv):
            if not list2[0] and not list2[1]:
                if len(argv) > 0:
                    lowerBound = argv[0]
                    upperBound = argv[1]
                    if (attribute[0] == 'n')
                        for x in list1[1]:
                            list2[1].append(x)
                        for n in list1[0]:  
                            list2[0].append(n)
                        print("Name: %s\nPopulation: %s "%(list2[0],list2[1]))
                        list1 = [[],[]]

t = T() 
t.selectAllCities():
t.printcities("name",50,100):

Tags: 函数inselfforifdefnotattribute

热门问题