Como sugiere el nombre, el error UnboundLocalError
solo se genera, cuando se hace referencia de manera incorrecta, a una variable local no asignada.
Todas la excepciones en Python heredan de la clase BaseException, o extienden de una clase derivada de ella.
La jerarquía de la este error es la siguiente:
En la mayoría de los casos, esto ocurrirá al intentar modificar una variable local antes de que sea realmente asignada dentro del ámbito local.
Como puede ver, la función incrementar_valor()
hace exactamente lo que el nombre implica: intentar incrementar la variable de conteo en uno y luego generar el resultado.
Sin embargo, existe una clara falta de asignación para la variable de recuento en el alcance local, y al no haber sido definida antes, la ejecución de este código genera un UnboundLocalError:
def incrementar_valor():
count += 1
print(count)
incrementar_valor()
UnboundLocalError
Traceback (most recent call last)
<ipython-input-50-8c8a38e696a5> in <module>
----> 1 incrementar_valor()
2
<ipython-input-49-2b22812a127f> in incrementar_valor()
1 def incrementar_valor():
2
----> 3 count += 1
4 print(count)
5
UnboundLocalError: local variable 'count' referenced before assignment
Dicho de otro modo, lo qué ha sucedido aquí es que, dado que el analizador no puede localizar la variable count()
, no se puede generar una solución para ejecutar la instrucción de incremento.
O sea estamos indicando un incremento, en una variable desconocida.
Espero modestamente que este artículo, sirva de ayuda a alguien.
Gracias
“…. hay que levantarse cada mañana con una meta y dormirse cada noche con una esperanza…“.
Y.