Palabra clave global en Python

En este artículo, cubriremos la palabra clave global, las reglas básicas para las palabras clave globales en Python, la diferencia entre las variables locales y globales, y ejemplos de palabras clave globales en Python

¿Cuál es el propósito de las palabras clave globales en Python?

Una palabra clave global es una palabra clave que permite a un usuario modificar una variable fuera del alcance actual. Se utiliza para crear variables globales en python desde un ámbito no global, es decir, dentro de una función. La palabra clave global se usa dentro de una función solo cuando queremos hacer asignaciones o cuando queremos cambiar una variable. Global no es necesario para imprimir y acceder.

Reglas de palabra clave global:

  • Si a una variable se le asigna un valor en cualquier lugar dentro del cuerpo de la función, se asume que es local a menos que se declare explícitamente como global.
  • Las variables a las que solo se hace referencia dentro de una función son implícitamente globales.
  • Usamos una palabra clave global para usar una variable global dentro de una función.
  • No es necesario utilizar palabras clave globales fuera de una función.

Uso de palabra clave global en Python: Para acceder a una variable global dentro de una función no es necesario utilizar una palabra clave global. 

Palabra clave global en el ejemplo de python

Ejemplo 1: Acceder a la variable global desde dentro de una función

Python3

# Python program showing no need to
# use global keyword for accessing
# a global value
 
# global variable
a = 15
b = 10
 
# function to perform addition
 
 
def add():
    c = a + b
    print(c)
 
 
# calling a function
add()

Producción:

25

Si necesitamos asignar un nuevo valor a una variable global, podemos hacerlo declarando la variable como global.

Ejemplo 2: Modificación de la variable global desde dentro de la función

Python3

# Python program showing to modify
# a global value without using global
# keyword
a = 15
 
# function to change a global value
def change():
    # increment value of a by 5
    a = a + 5
    print(a)
 
change()

Producción:

UnboundLocalError: local variable 'a' referenced before assignment

Esta salida es un error porque estamos tratando de asignar un valor a una variable en un ámbito externo. Esto se puede hacer con el uso de una variable global .

Ejemplo 3: cambiar la variable global desde dentro de una función usando global

Python3

# Python program to modify a global
# value inside a function
 
x = 15
 
def change():
    # using a global keyword
    global x
 
    # increment value of a by 5
    x = x + 5
    print("Value of x inside a function :", x)
 
change()
print("Value of x outside a function :", x)

Producción:

Value of x inside a function : 20
Value of x outside a function : 20

En el ejemplo anterior, primero definimos x como una palabra clave global dentro de la función change(). El valor de x se incrementa entonces en 5, es decir. x=x+5 y por lo tanto obtenemos el resultado 20. Como podemos ver al cambiar el valor dentro de la función change(), el cambio también se refleja en el valor fuera de la variable global.

Variables globales en los módulos de Python 

La mejor manera de compartir variables globales entre diferentes módulos dentro del mismo programa es crear un módulo especial (a menudo llamado config o cfg). Importe el módulo de configuración en todos los módulos de su aplicación; el módulo entonces estará disponible como un nombre global. Solo hay una instancia de cada módulo, por lo que cualquier cambio realizado en el objeto del módulo se refleja en todas partes. Por ejemplo, compartir variables globales entre módulos.

Código 1: cree un archivo config.py para almacenar variables globales

Python3

x = 0
y = 0
z = "none"

Código 2: Cree un archivo modify.py para modificar variables globales

Python3

import config
config.x = 1
config.y = 2
config.z = "geeksforgeeks"

Aquí hemos modificado el valor de x, y y z. Estas variables se definieron en el módulo config.py, por lo tanto, debemos importar el módulo de configuración y podemos usar config.variable_name para acceder a estas variables.

Cree un archivo main.py para modificar variables globales

Python3

import config
import modify
print(config.x)
print(config.y)
print(config.z)

Producción:

1
2
geeksforgeeks

Global en funciones anidadas

Para usar global dentro de una función anidada, tenemos que declarar una variable con una palabra clave global dentro de una función anidada

Python3

# Python program showing a use of
# global in nested function
 
def add():
    x = 15
    def change():
        global x
        x = 20
    print("Before making changing: ", x)
    print("Making change")
    change()
    print("After making change: ", x)
 
add()
print("value of x", x)

Producción:

Before making changing:  15
Making change
After making change:  15
value of x 20

En el ejemplo anterior, antes y después de realizar el cambio(), la variable x toma el valor de la variable local, es decir, x = 15. Fuera de la función add(), la variable x tomará el valor definido en la función change(), es decir, x = 20. porque hemos usado la palabra clave global en x para crear una variable global dentro de la función change() (alcance local).

Publicación traducida automáticamente

Artículo escrito por ShailyPandey y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *