¿Qué es un error local independiente en Python?


Mejor respuesta

Vea este código.

  1. contador = 0
  2. def increment ():
  3. contador + = 1
  4. incremento ()

Python no tiene declaraciones de variables, por lo que tiene que averiguar el alcance de las variables en sí mismo. Lo hace mediante una regla simple: si hay una asignación a una variable dentro de una función, esa variable se considera local. Por lo tanto, la línea

contador + = 1

implícitamente hace que el contador sea local a increment (). Sin embargo, al intentar ejecutar esta línea, se intentará leer el valor de la variable local contador antes de que se asigne, lo que resulta en un UnboundLocalError.

Para resolver este tipo de error, realice los siguientes cambios.

  1. contador = 0
  2. def increment ():
  3. contador global
  4. contador + = 1
  5. incremento ()

¡Todo lo mejor …!

Respuesta

UnboundLocalError se genera cuando se hace referencia a una variable local antes de que se haya asignado.

Es una subclase de NameError

Significa que tiene un identificador al que intentó acceder antes de haber sido asignado o tal vez declarado.

Uno de los muchos problemas de los lenguajes sin semántica de tipado débil, herencia múltiple y sin una clase o protocolo base común. s demasiada confianza en las excepciones en las que la introspección y la inferencia del compilador podrían ser más informativas antes de que se pudiera ejecutar el código.

Lo que cree que está ahorrando al escribir caracteres para tener validación en su código, lo paga con trazas de pila .

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *