In Python I'm getting the following error:
UnboundLocalError: local variable 'total' referenced before assignment
At the start of the file (before the function where the error comes from), I declare 'total' using the global keyword. Then, in the body of the program, before the function that uses 'total' is called, I assign it to 0. I've tried setting it to 0 in various places (including the top of the file, just after it is declared), but I can't get it to work. Does anyone see what I'm doing wrong?
I think you are using 'global' incorrectly. See Python reference. You should declare variable without global and then inside the function when you want to access global variable you declare it
#!/usr/bin/python total def checkTotal(): global total total = 0
See this example:
#!/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() does not modify the global total the output is 1 not 11.
def example(): cl = [0, 1] def inner(): #cl = [1, 2] //access this way will throw `reference before assignment` cl = 1 cl = 2 //these won't inner()