Qué significa NameError y cómo solucionarlo
Referencia del error
NameError
Lenguaje
Severidad
MediaCuá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
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 definedCó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