Requisitos previos: manejo de excepciones de Python
Hay varias excepciones estándar en Python y NameError es una de ellas. NameError se genera cuando el identificador al que se accede no está definido en el ámbito local o global. Las causas generales por las que se genera NameError son:
1. Funciones integradas mal escritas:
En el siguiente código de ejemplo, la declaración de impresión está mal escrita, por lo que se generará NameError.
Python3
geek = input() print(geek)
Producción :
NameError: name 'print' is not defined
2. Usando variables no definidas:
Cuando se ejecuta el siguiente programa, NameError se generará ya que la variable geek nunca se define.
Python3
geeky = input() print(geek)
Producción :
NameError: name 'geek' is not defined
3. Definición de la variable después del uso:
En el siguiente ejemplo, aunque la variable geek está definida en el programa, se define después de su uso. Dado que Python interpreta el código de arriba a abajo, esto generará NameError
Python3
print(geek) geek = "GeeksforGeeks"
Producción :
NameError: name 'geek' is not defined
4. Uso incorrecto del alcance:
En el siguiente programa de ejemplo, la variable geek se define dentro del alcance local de la función de asignación. Por lo tanto, no se puede acceder globalmente. Esto plantea NameError.
Python3
def assign(): geek = "GeeksforGeeks" assign() print(geek)
Producción :
NameError: name 'geek' is not defined
Manejo de NameError
Para manejar específicamente NameError en Python, debe mencionarlo en la declaración de excepción. En el siguiente código de ejemplo, si solo se genera NameError en el bloque de prueba, se imprimirá un mensaje de error en la consola.
Python3
def geek_message(): try: geek = "GeeksforGeeks" return geeksforgeeks except NameError: return "NameError occurred. Some variable isn't defined." print(geek_message())
Producción :
NameError occurred. Some variable isn't defined.