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