Usar variables globales en varios archivos en Python

Naila Saad Siddiqui 15 febrero 2024
  1. Variables globales en Python
  2. Usar variables globales en varios archivos en Python
Usar variables globales en varios archivos en Python

Esta guía trivial trata sobre el uso de variables globales en varios archivos en Python. Pero antes de pasar al tema principal, veamos brevemente las variables globales y sus usos en varios archivos.

Variables globales en Python

Las variables globales son las variables que no forman parte del alcance de la función y se pueden usar globalmente en todo el programa. Esto sugiere que las variables globales también se pueden usar dentro o fuera del cuerpo de la función.

Veamos un ejemplo:

x = "my global var"


def fun1():
    print("Inside fun1(): ", x)


fun1()
print("In global context: ", x)

Hemos definido una variable global x en este código y le hemos asignado algún valor. Luego, imprimimos la variable x dentro y fuera de la función para ver el valor en ambos alcances.

Producción:

Variable global de Python - Salida

El resultado sugiere que el valor de la variable es el mismo dentro y fuera de la función. Si necesitamos cambiar el valor de una variable global en algún ámbito local, como en una función, entonces debemos usar la palabra clave global al declarar una variable.

Usar variables globales en varios archivos en Python

Si estamos usando varios archivos para nuestro programa y estos archivos necesitan actualizar la variable, entonces debemos declarar la variable con una palabra clave global como esta:

global x
x = "My global var"

Considere un escenario de ejemplo en el que tenemos que lidiar con varios archivos de código de Python y una variable global de la lista de estudiantes. El archivo resource.py tiene una lista global de los estudiantes, y prog.py tiene un método para agregar estudiantes a esta lista global.

Podemos realizar el concepto usando el siguiente código:

Código- resource.py:

def initialize():
    global students
    students = []

Código- prog.py:

import resource


def addStudent():
    resource.students.append("John")
    resource.students.append("Dave")

Código- Main.py:

import resource
import prog

resource.initialize()
prog.addStudent()
print(resource.students[0])
print(resource.students[1])

En el primer archivo resource.py, hemos definido una función en la que declaramos una lista studentList y la inicializamos en una lista vacía. En el siguiente archivo (es decir, prog.py), hemos incluido el módulo resource y luego hemos definido una función addStudent, en la que hemos añadido dos objetos en la lista global studentList.

En el archivo principal Main.py, hemos incluido ambos módulos, resource y prog. Posteriormente, llamamos a la función inicializar y agregarEstudiante de ambos módulos, respectivamente.

Luego, cuando imprimimos los índices de la lista, obtuvimos el siguiente resultado:

Variable global de Python entre archivos - Salida

Por lo tanto, podemos usar la palabra clave global para definir una variable global en un archivo de Python para usar en otros archivos. Ahora, para acceder a la variable global de un archivo en otro archivo, importe el archivo que tiene la variable global como módulo en el otro archivo y acceda directamente a cualquier variable global del módulo importado sin complejidades adicionales.

Artículo relacionado - Python Scope