Arreglar NameError: la variable no está definida en Python
- Alcance de las variables en Python
-
el
NameError
en Python -
Solucione el
Error de nombre: la variable no está definida
en Python
Este artículo discutirá las causas de NameError
en Python y cómo solucionar el error particular NameError: la variable no está definida
.
Alcance de las variables en Python
El alcance de las variables implementa restricciones de accesibilidad en las variables a las que se puede acceder desde un bloque específico o no. El tiempo de vida de algunas variables se encuentra dentro de un bloque en particular, mientras que a otras se puede acceder a través del programa.
Entendámoslo a través de un ejemplo:
# global scope
a = 3
# Function to add two numbers
def displayScope():
# local varaible
b = 2
# sum a and b
c = a + b
print("The sum of a & b = ", c)
displayScope()
Producción :
The sum of a & b = 5
En este ejemplo, la variable a
se define en la parte superior y no está encerrada en ningún bloque, por lo que es accesible en todo el programa. Pero la variable b
se define localmente dentro del bloque de funciones; por lo tanto, no es accesible fuera del bloque.
el NameError
en Python
En Python, el NameError
ocurre en tiempo de ejecución durante la ejecución de una variable, biblioteca, función o una cadena sin las comillas simples o dobles, que son tipos en el código sin ninguna declaración. En segundo lugar, cuando llamas a las funciones o variables cuyo alcance es local y no se puede acceder globalmente, el intérprete de Python arroja el NameError
y dice que el nombre 'nombre' no está definido
.
Causas del NameError
en Python
La causa del NameError
es la llamada a una función, variable o biblioteca no válida. Para entender claramente la razón, pongamos un ejemplo:
# invalid funciton call
def test_ftn():
return "Test function"
print(test_ft()) # calling the the function which does not exist
# printing invalid varaible
name = "Zeeshan Afridi"
print(Name) # printing variable `Name` which does not exist
Ambas son las causas de NameError
en Python porque, en el primer ejemplo, llamamos a una función no disponible. El nombre de la función es test_ftn
, mientras que llamamos a la función test_ft
.
En el segundo ejemplo, la variable nombre
está asignada a la cadena Zeeshan Afridi
, pero estamos imprimiendo Nombre
, que ni siquiera está declarado en el programa. Por eso obtuvimos el NameError: el nombre 'test_ft' no está definido
.
Solucione el Error de nombre: la variable no está definida
en Python
En los ejemplos anteriores, obtuvimos el NameError
porque llamamos a una variable fuera del alcance. Veamos cómo podemos arreglar este NameError: la variable no está definida
.
# global scope
a = 3
# Function to add two numbers
def displayScope():
# local varaible
b = 2
print("The value of a = ", a)
print("The value of b = ", b)
Producción :
The value of a = 3
NameError: name 'b' is not defined
El código anterior ha mostrado el valor de a
porque es accesible en todo el programa. Por otro lado, la variable b
está definida localmente, por lo que solo la conoce la función displayScope()
; no se puede acceder fuera del alcance.
Esto ha provocado el error NameError: el nombre 'b' no está definido
.
Afortunadamente, Python ha introducido la palabra clave de reserva global
para solucionar este problema. Esta palabra clave de reserva global
se usa para aumentar el alcance de una variable local para que se pueda acceder a la variable en todo el programa globalmente.
Entendámoslo a través de un ejemplo:
# global scope
a = 3
# Function to add two numbers
def displayScope():
# local scope
global c
z = 2
c = a + b
print("The value of c =", c)
Producción :
The value of c = 5
En este ejemplo, la variable c
se define dentro del alcance local de displayScope()
, pero podemos acceder a ella globalmente gracias a la palabra clave mágica global
. Ahora, c
es accesible en todas partes porque se define como global
.
Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.
LinkedInArtículo relacionado - Python Error
- Administrar fallas de segmentación en Python
- Archivo <Stdin>, Línea 1, en <Módulo> Error en Python
- Arreglar AttributeError: el objeto 'generador' no tiene atributo 'siguiente' en Python
- Arreglar el comando cl.exe falló: no existe tal archivo o directorio en Windows
- Arreglar Socket.Gaierror: [Errno 8] Nodename ni Servname proporcionado, o desconocido en Python