UnboundLocalError en Python

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.