Variables globales, locales y no locales de Python
Variables globales, locales y no locales de Python
En este tutorial, aprenderá sobre las variables globales de Python, las variables locales, las variables no locales y dónde usarlas.
Video:Variables locales y globales de Python
Variables globales
En Python, una variable declarada fuera de la función o en el ámbito global se conoce como variable global. Esto significa que se puede acceder a una variable global dentro o fuera de la función.
Veamos un ejemplo de cómo se crea una variable global en Python.
Ejemplo 1:crear una variable global
x = "global"
def foo():
print("x inside:", x)
foo()
print("x outside:", x)
Salida
x inside: global x outside: global
En el código anterior, creamos x como una variable global y definió un foo()
para imprimir la variable global x . Finalmente, llamamos al foo()
que imprimirá el valor de x .
¿Qué sucede si desea cambiar el valor de x? dentro de una función?
x = "global"
def foo():
x = x * 2
print(x)
foo()
Salida
UnboundLocalError: local variable 'x' referenced before assignment
La salida muestra un error porque Python trata x como una variable local y x tampoco está definido dentro de foo()
.
Para que esto funcione, usamos el global
palabra clave. Visite Python Global Keyword para obtener más información.
Variables locales
Una variable declarada dentro del cuerpo de la función o en el ámbito local se conoce como variable local.
Ejemplo 2:Acceso a variable local fuera del alcance
def foo():
y = "local"
foo()
print(y)
Salida
NameError: name 'y' is not defined
La salida muestra un error porque estamos tratando de acceder a una variable local y en un ámbito global, mientras que la variable local solo funciona dentro de foo()
o ámbito local.
Veamos un ejemplo de cómo se crea una variable local en Python.
Ejemplo 3:crear una variable local
Normalmente, declaramos una variable dentro de la función para crear una variable local.
def foo():
y = "local"
print(y)
foo()
Salida
local
Echemos un vistazo al problema anterior donde x era una variable global y queríamos modificar x dentro de foo()
.
Variables globales y locales
Aquí, mostraremos cómo usar variables globales y variables locales en el mismo código.
Ejemplo 4:uso de variables globales y locales en el mismo código
x = "global "
def foo():
global x
y = "local"
x = x * 2
print(x)
print(y)
foo()
Salida
global global local
En el código anterior, declaramos x como global y y como una variable local en el foo()
. Luego, usamos el operador de multiplicación *
para modificar la variable global x e imprimimos ambos x y y .
Después de llamar al foo()
, el valor de x se convierte en global global
porque usamos el x * 2
imprimir dos veces global
. Después de eso, imprimimos el valor de la variable local y es decir, local
.
Ejemplo 5:Variable global y variable local con el mismo nombre
x = 5
def foo():
x = 10
print("local x:", x)
foo()
print("global x:", x)
Salida
local x: 10 global x: 5
En el código anterior, usamos el mismo nombre x tanto para la variable global como para la variable local. Obtenemos un resultado diferente cuando imprimimos la misma variable porque la variable se declara en ambos ámbitos, es decir, el ámbito local dentro de foo()
y alcance global fuera de foo()
.
Cuando imprimimos la variable dentro de foo()
genera local x: 10
. Esto se llama el alcance local de la variable.
De manera similar, cuando imprimimos la variable fuera del foo()
, genera
global x:5
. Esto se llama el alcance global de la variable.
Variables no locales
Las variables no locales se utilizan en funciones anidadas cuyo alcance local no está definido. Esto significa que la variable no puede estar ni en el ámbito local ni en el global.
Veamos un ejemplo de cómo se usa una variable no local en Python.
Usamos nonlocal
palabras clave para crear variables no locales.
Ejemplo 6:Crear una variable no local
def outer():
x = "local"
def inner():
nonlocal x
x = "nonlocal"
print("inner:", x)
inner()
print("outer:", x)
outer()
Salida
inner: nonlocal outer: nonlocal
En el código anterior, hay un inner()
anidado función. Usamos nonlocal
palabras clave para crear una variable no local. El inner()
la función está definida en el ámbito de otra función outer()
.
Nota :Si cambiamos el valor de una variable no local, los cambios aparecen en la variable local.
python
- C Variables, constantes y literales
- Palabras clave e identificadores de Python
- Declaración, sangría y comentarios de Python
- Variables, constantes y literales de Python
- Conversión de tipos de Python y conversión de tipos
- Entrada, salida e importación de Python
- Palabra clave global de Python
- Números de Python, conversión de tipos y matemáticas
- Administración de archivos y directorios de Python
- Errores de Python y excepciones integradas
- type() y isinstance() en Python con ejemplos