Palabra clave global en Python

Al escribir el código de Python, es posible que se haya encontrado con una situación en la que desee que el acceso a una variable se limite a un bloque de código específico. La accesibilidad de las variables se controla limitando el alcance de la variable.

En este caso, la variable será visible y accesible solo para el bloque de código en su alcance.

Los dos tipos de ámbitos disponibles en Python son el ámbito local y el ámbito global.

En este blog, cubriremos el concepto de alcance global en detalle, junto con algunos ejemplos.

Aprende más de python con estos temas:

Ámbito local en Python

Cuando se declara una variable dentro del cuerpo de la función, la accesibilidad de la variable está restringida solo dentro del bloque de funciones. Este tipo de ámbito se denomina ámbito local. La variable que tiene el ámbito local se denomina variable local.

Veamos un ejemplo para entender el alcance local.

Recomendado: Aprende sobre estos lenguajes de programación y tipos

def func():
# local scope
name = "Coding Ninjas"
print(name)
func()

Resultado:

"Coding Ninjas"

Ahora, veamos qué sucede cuando intentamos acceder al nombre de la variable fuera de la función.

def func():
 # local scope
 name = "Coding Ninjas"
func()
print(name)

Error:

En este caso, se produce un error porque la variable «nombre» no existe fuera de la función y no se puede acceder a ella fuera de la función.

Rango global en Python

En Python, se dice que una variable declarada fuera de la función tiene alcance global. Ahora se puede acceder a la variable tanto dentro como fuera de la función. La variable que tiene alcance global se llama variable global.

Se dice que una variable declarada en el segmento de nivel superior del programa python tiene alcance global y se puede usar en cualquier parte del programa. Veamos ahora un ejemplo para entender el alcance global.

# global scope
name = "Coding Ninjas"
def func():
print(name)   
func()

Resultado:

"Coding Ninjas"

Una variable global y local con el mismo nombre

En Python, puede haber una variable global y una local con el mismo nombre. En este caso, la variable local se usa dentro de la función, y fuera de la función, se usa la variable global. Veamos un ejemplo para entender esta situación.

# global variable
s = "Global Variable"
def func():
 # local variable
s = "Local Variable"
print("I am a " + s)
func()
print("I am a " + s)

Resultado:

I am a Local Variable
I am a Global Variable

En el programa anterior, tanto las variables globales como las locales tienen el mismo nombre, «s». Obtenemos un resultado diferente al imprimir el valor de «s» porque las variables se declaran en diferentes ámbitos, es decir. el ámbito local dentro de la función() y el ámbito global fuera de la función().

Cuando imprimimos el valor de la variable dentro de la función (), imprime el valor de la variable local. Y, cuando imprimimos el valor de la variable fuera de la función(), imprime el valor de la variable global.

Palabra clave global en Python

En Python, la palabra clave global se usa para modificar la variable fuera del alcance actual. La palabra clave global se usa dentro de una función cuando la variable necesita actualizarse usando el valor inicial de la variable. Sin embargo, no es necesario imprimir ni acceder a las variables de la función.

Veamos qué sucede cuando intentamos actualizar una variable global dentro de la función usando el valor inicial de la variable.

# global scope
name = "Coding"
def func():
name = name + " Ninjas"
print(name)   
func()

Error:

Se produce un error cuando Python trata «nombre» como una variable local y no hemos definido un «nombre» de variable local dentro de la función(). Para resolver este error, usamos la palabra clave global.

# global scope
name = "Coding"
def func():
 #global keyword used
 global name
 # name updated
 name = name + " Ninjas"
 print("Inside function: " + name)   
func()
print("Outside function: " + name)  

Resultado:

Inside function: Coding Ninjas
Outside function: Coding Ninjas

Tenga en cuenta que el cambio también se produjo en la variable global fuera de la función.

Reglas globales de palabras clave en Python

Las reglas básicas para la palabra clave global en Python son:

  • Una variable creada dentro de una función es local por defecto a menos que se declare explícitamente como una variable global.
  • Una variable declarada fuera de una función es global por defecto.
  • La palabra clave global se usa para crear una variable global dentro de una función.
  • La palabra clave global no necesita usarse fuera de una función.

Variables globales en los módulos de Python

En Python, un archivo que contiene sentencias y definiciones de Python se denomina módulo. Para compartir variables globales entre diferentes módulos dentro del mismo programa, creamos un solo módulo (a menudo llamado config.py). Este módulo mantiene las variables globales y comparte la información entre los módulos de Python dentro del mismo programa.

Importamos el módulo de configuración en todos los módulos necesarios para compartir variables globales entre diferentes módulos dentro del mismo programa. Este módulo ahora está disponible como un nombre global. Solo está presente una instancia de cada módulo, por lo que cualquier cambio realizado en el objeto del módulo se refleja en todas partes.

Veamos un ejemplo para comprender cómo se comparten las variables globales entre los módulos de Python.

Crear un config.py archivo para almacenar las variables globales

# global variables of name and year stored
name = "Coding"
year = 2020

Crear un actualizar.py archivo para actualizar las variables globales

# import config module
import config
# modify the global variables
config.name = "Coding Ninjas"
config.year = 2021

Crear un principal.py archivo para imprimir el valor modificado de las variables globales

# import both config and update module
import config
import update
# print the updated value
print("Modified value of name: " + config.name)
print("Modified value of year: ", config.year)

Resultado:

Modified value of name: Coding Ninjas
Modified value of year: 2021

Variables globales en funciones anidadas

Para usar global dentro de una función anidada, necesitamos declarar una variable con palabra clave global dentro de una función anidada. Así es como se usan las variables globales en una función anidada.

def func():

year = 2020
def change():
global year
year = 2020
# local variable year printed
print("Before changing local variable year: ", year)
    change()
# local variable year printed
 print("After changing local variable year: ", year)
func()
# global variable year printed
print("Global variable year: ",year)

Resultado:

Before changing local variable year:  2020
After changing local variable year:  2020
Global variable year:  2021

En el programa anterior, se declara una variable global dentro de la función anidada change().

Dentro de func(), «año» no tiene efecto en la palabra clave global. Antes y después de llamar a change(), la variable «año» toma el valor de la variable local, es decir, 2020.

Fuera de la función (), la variable año tomará el valor definido en cambio (), es decir, 2021. Esto se debe a que la palabra clave global en «año» se usó para crear una variable global dentro de cambio ().

Si se han realizado cambios dentro de change(), los cambios se ven fuera del ámbito local, es decir. función().

Preguntas frecuentes

¿Cómo se declara una variable global en Python?

Global por defecto es una variable declarada fuera de una función, y para hacer una variable global dentro de una función; se utiliza la palabra clave global.

¿Cómo usar una variable global en otro archivo de Python?

Para usar una variable global en otro archivo de Python, cree un archivo para contener las variables globales e importe este archivo al destino requerido.

¿Qué sucede si hay una variable local con el mismo nombre que la variable global a la que desea acceder?

En este caso, se sombrea la variable global y se da prioridad a la variable local.

¿Cuál es el tiempo de vida de una variable global y una variable local?

El tiempo de vida de una variable global es el programa completo que se ejecuta y el tiempo de vida de una variable local es la ejecución de su función.

¿Cuál es el uso del método globals() en Python?

La tabla de símbolos globales almacena toda la información relacionada con el alcance global del programa y se accede a ella en Python mediante el método globals().