Lingua-e
← Errores
Python

Qué significa NameError y cómo solucionarlo

Referencia del error

NameError

Lenguaje

Python

Severidad

Media

Cuándo ocurre

Un NameError se lanza en Python cuando intentas usar el nombre de una variable o función que no ha sido definida en el scope actual.

Posibles soluciones

Define la variable antes de usarla. Verifica la ortografía de cada nombre. Si una variable está definida dentro de una función, pásala como argumento o retórnala en vez de acceder a ella desde el scope externo. Usa un IDE o linter para detectar nombres no definidos rápidamente.

Errores relacionados

Más detalles

Un NameError se lanza en Python cuando intentas usar el nombre de una variable o función que no ha sido definida en el scope actual. Python busca el nombre en los scopes local, de cierre, global y de builtins y no lo encuentra.

Por qué ocurre

  • Usar una variable antes de asignarle un valor.
  • Error tipográfico en el nombre de la variable o función.
  • Intentar usar un nombre que solo está definido dentro de una función desde fuera de ella.
  • Olvidar importar un módulo antes de usar su contenido.

Posibles soluciones

Define la variable antes de usarla. Verifica la ortografía de cada nombre. Si una variable está definida dentro de una función, pásala como argumento o retórnala en vez de acceder a ella desde el scope externo. Usa un IDE o linter para detectar nombres no definidos rápidamente.

Ejemplos

Python

Código que causa el error

def greet():
    print(message)

greet()

Error en la terminal

Traceback (most recent call last):
  File "app.py", line 4, in <module>
    greet()
  File "app.py", line 2, in greet
    print(message)
NameError: name 'message' is not defined

Código corregido

message = "Hello, world!"

def greet():
    print(message)

greet()  # Hello, world!

Practica en inglés

¿Cómo le explicarías un NameError a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis