referenced before assignment error in python
在python中,我得到了以下错误:
1 | UnboundLocalError: local variable 'total' referenced before assignment |
在文件的开头(在错误产生的函数之前),我使用global关键字声明"total"。然后,在程序主体中,在调用使用"total"的函数之前,我将其分配给0。我已经尝试在不同的地方将其设置为0(包括文件的顶部,声明之后),但我无法使其工作。有人看到我做错了什么吗?
我认为您使用"global"不正确。请参见python参考。您应该声明不带全局变量的变量,然后在函数内部,当您想要访问全局变量时,您应该声明它
1 2 3 4 5 6 7 | #!/usr/bin/python total def checkTotal(): global total total = 0 |
请参见此示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | #!/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() |
因为
我的剧本
1 2 3 4 5 6 7 8 | 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() |