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