在Python中赋值错误之前引用

在Python中,我收到以下错误:

UnboundLocalError: local variable 'total' referenced before assignment 

在文件的开头(在错误来自的函数之前),我使用global关键字声明“total”。 然后,在程序的主体中,在使用'total'的函数被调用之前,我将它赋值为0.我已经试过在不同的地方将它设置为0(包括文件的顶部,声明之后),但我不能得到它的工作。 有没有人看到我在做什么错了?

我认为你正在使用'全球'错误。 请参阅Python参考 。 你应该声明variables没有全局,然后在函数内部,当你想访问全局variables,你声明它是global yourvar

 #!/usr/bin/python total def checkTotal(): global total total = 0 

看到这个例子:

 #!/usr/bin/env python total = 0 def doA(): # not accessing global total total = 10 def doB(): global total total = total + 1 def checkTotal(): # global total - not required as global is required # only for assignment - thanks for comment Greg print total def main(): doA() doB() checkTotal() if __name__ == '__main__': main() 

因为doA()不会修改全局总和,所以输出是1而不是11。

我的情景

 def example(): cl = [0, 1] def inner(): #cl = [1, 2] //access this way will throw `reference before assignment` cl[0] = 1 cl[1] = 2 //these won't inner()