Lingua-e
Python

¿Qué significa NameError?

← Errores

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.

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ómo solucionarlo

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.

Código corregido

message = "Hello, world!"

def greet():
    print(message)

greet()  # Hello, world!

Errores relacionados

¿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