variable unboundlocalerror referenced before assignment python

unboundlocalerror - referenciado antes del error de asignación en python



local variable referenced before assignment python (2)

Creo que estás usando ''global'' incorrectamente. Ver referencia de Python . Debes declarar la variable sin global y luego dentro de la función cuando deseas acceder a la variable global y declaras global yourvar .

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

Mira este ejemplo:

#!/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()

Como doA() no modifica el total global, la salida es 1, no 11.

En Python recibo el siguiente error:

UnboundLocalError: local variable ''total'' referenced before assignment

Al comienzo del archivo (antes de la función de donde proviene el error), declaro ''total'' usando la palabra clave global. Luego, en el cuerpo del programa, antes de que se llame a la función que usa ''total'', la asigno a 0. Intenté configurarla en 0 en varios lugares (incluida la parte superior del archivo, justo después de declararlo) ), pero no puedo hacer que funcione. ¿Alguien ve lo que estoy haciendo mal?


Mi escenario

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()