How to Use Global Variables Across Multiple Files in Python

Naila Saad Siddiqui Feb 02, 2024
  1. Global Variables in Python
  2. Use Global Variables Across Multiple Files in Python
How to Use Global Variables Across Multiple Files in Python

This trivial guide is about using global variables across multiple files in Python. But before jumping into the main topic, let’s briefly look at global variables and their uses in multiple files.

Global Variables in Python

Global variables are the variables that are not a part of the function scope and can be used globally across the program. This suggests that the global variables can also be used within or outside the function body.

Let’s look at an example:

x = "my global var"


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


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

We have defined a global variable x in this code and assigned it some value. Then, we printed the x variable inside and outside the function to see the value in both the scope.

Output:

Python Global Variable - Output

The output suggests that the variable’s value is the same inside and outside the function. If we need to change the value of a global variable in some local scope, like in a function, then we need to use the keyword global when declaring a variable.

Use Global Variables Across Multiple Files in Python

If we are using multiple files for our program and these files need to update the variable, then we should declare the variable with a global keyword like this:

global x
x = "My global var"

Consider an example scenario where we have to deal with multiple Python code files and a global variable of the list of students. The resource.py file has a global list of the students, and the prog.py has a method to append students to this global list.

We can realize the concept using the following code:

Code- resource.py:

def initialize():
    global students
    students = []

Code- prog.py:

import resource


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

Code- Main.py:

import resource
import prog

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

In the first resource.py file, we have defined a function in which we declare a list studentList and initialize it to an empty list. In the next file (i.e., prog.py), we have included the resource module and then defined a function addStudent, in which we have appended two objects in the global list studentList.

In the main file Main.py, we have included both modules, resource and prog. Later, we called the function initialize and addStudent of both modules, respectively.

Afterward, when we printed the list indexes, we got the following output:

Python Global Variable Across Files - Output

Thus, we can use the global keyword to define a global variable in a Python file for use across the other files. Now, to access the global variable of a file in another file, import the file having the global variable as a module in the other file and directly access any global variable of the imported module without additional complexities.

Related Article - Python Scope