Palabra clave global de Python
Palabra clave global de Python
En este artículo, aprenderá sobre la palabra clave global, la variable global y cuándo usar palabras clave globales.
Antes de leer este artículo, asegúrese de tener algunos conceptos básicos de variables globales, locales y no locales de Python.
¿Qué es la palabra clave global
En Python, global
La palabra clave le permite modificar la variable fuera del alcance actual. Se utiliza para crear una variable global y realizar cambios en la variable en un contexto local.
Reglas de palabra clave global
Las reglas básicas para global
palabra clave en Python son:
- Cuando creamos una variable dentro de una función, es local por defecto.
- Cuando definimos una variable fuera de una función, es global por defecto. No tienes que usar
global
palabra clave. - Usamos
global
palabra clave para leer y escribir una variable global dentro de una función. - Uso de
global
la palabra clave fuera de una función no tiene efecto.
Uso de palabra clave global
Tomemos un ejemplo.
Ejemplo 1:Acceder a una variable global desde dentro de una función
c = 1 # global variable
def add():
print(c)
add()
Cuando ejecutamos el programa anterior, la salida será:
1
Sin embargo, es posible que tengamos algunos escenarios en los que necesitemos modificar la variable global desde dentro de una función.
Ejemplo 2:Modificación de la variable global desde dentro de la función
c = 1 # global variable
def add():
c = c + 2 # increment c by 2
print(c)
add()
Cuando ejecutamos el programa anterior, la salida muestra un error:
UnboundLocalError: local variable 'c' referenced before assignment
Esto se debe a que solo podemos acceder a la variable global pero no podemos modificarla desde dentro de la función.
La solución para esto es usar el global
palabra clave.
Ejemplo 3:cambiar la variable global desde dentro de una función usando global
c = 0 # global variable
def add():
global c
c = c + 2 # increment by 2
print("Inside add():", c)
add()
print("In main:", c)
Cuando ejecutamos el programa anterior, la salida será:
Inside add(): 2 In main: 2
En el programa anterior, definimos c como palabra clave global dentro del add()
función.
Luego, incrementamos la variable c por 2 , es decir, c = c + 2
. Después de eso, llamamos al add()
función. Finalmente, imprimimos la variable global c .
Como podemos ver, también se produjo un cambio en la variable global fuera de la función, c = 2
.
Variables globales en módulos de Python
En Python, creamos un único módulo config.py
para contener variables globales y compartir información entre módulos de Python dentro del mismo programa.
Así es como podemos compartir variables globales entre los módulos de python.
Ejemplo 4:compartir una variable global entre módulos de Python
Crea un config.py
archivo, para almacenar variables globales
a = 0
b = "empty"
Crea un update.py
archivo, para cambiar las variables globales
import config
config.a = 10
config.b = "alphabet"
Crea un main.py
archivo, para probar cambios en el valor
import config
import update
print(config.a)
print(config.b)
Cuando ejecutamos el main.py
archivo, la salida será
10 alphabet
En lo anterior, hemos creado tres archivos:config.py
, update.py
y main.py
.
El módulo config.py
almacena variables globales de a y b . En el update.py
archivo, importamos el config.py
módulo y modificar los valores de a y b . Del mismo modo, en el main.py
archivo, importamos ambos config.py
y update.py
módulo. Finalmente, imprimimos y probamos los valores de las variables globales, ya sea que hayan cambiado o no.
Global en funciones anidadas
Así es como puede usar una variable global en una función anidada.
Ejemplo 5:uso de una variable global en una función anidada
def foo():
x = 20
def bar():
global x
x = 25
print("Before calling bar: ", x)
print("Calling bar now")
bar()
print("After calling bar: ", x)
foo()
print("x in main: ", x)
La salida es:
Before calling bar: 20 Calling bar now After calling bar: 20 x in main: 25
En el programa anterior, declaramos una variable global dentro de la función anidada bar()
. Dentro de foo()
función, x no tiene efecto de la palabra clave global.
Antes y después de llamar al bar()
, la variable x toma el valor de la variable local, es decir, x = 20
. Fuera del foo()
función, la variable x tomará el valor definido en el bar()
función, es decir, x = 25
. Esto se debe a que hemos usado global
palabra clave en x para crear una variable global dentro del bar()
función (alcance local).
Si hacemos algún cambio dentro del bar()
función, los cambios aparecen fuera del ámbito local, es decir, foo()
.
python