altering global variables in functions python
Python

Altering Global Variables within Functions in Python

As you develop Python programs, you’ll come across variables defined outside functions, known as global variables. They’re accessible throughout your code, but sometimes you need to modify or even remove them during execution.

Here we’ll explore how to efficiently alter global variables within functions.

Global Variables in Python

In Python programming, when you define a variable outside of any specific function, it gains a global scope, meaning you can access and modify it from any part of your code. This includes within functions, where you can reference the variable directly.

For instance:

sample_variable = 10

def display_global():
    print("Accessible global variable:", sample_variable)

display_global() 
# Expected output: Accessible global variable: 10

The variable sample_variable is global because it’s allocated outside the display_global function but remains accessible within it. Be mindful that altering global variables can influence different parts of your program since their scope is not contained.

Reasons for Removing Global Variables

Managing memory wisely is crucial in programming. If your code’s global variables are using up excessive memory resources, particularly from sizable data structures or objects, it might be time to consider their removal.

Pruning unused global variables can:

  • Reduce Memory Usage: Frees up space in memory, optimizing the performance of your application.
  • Clean Up Code: Declutters the global namespace, making the globals() list more manageable.

However, proceed with care when you delete global variables. If other parts of your program expect these variables to be present, their removal could trigger errors.

Always ensure that a global variable is no longer required by any part of your code before deciding to remove it.

Removing a Global Variable

In scenarios where you need to eliminate a global variable from within a function in Python, you must use a combination of global and del keywords. By default, variables are assumed to be local in functions, which can lead to errors if not handled correctly.

Properly deleting a global variable:

  1. Define the variable globally: Before the function, assign a value to the variable you wish to delete.
    x = 10 
  2. Utilize the global statement: Within your function, before attempting deletion, declare the variable as global.
    def delete_global():     global x     del x 
  3. Delete the variable: Now that Python knows to refer to the global variable, use del to remove it.
    delete_global() 
  4. Check deletion: After calling your function, if you try to access the variable, a NameError is raised, confirming its removal.
    print(x)  # NameError: name 'x' is not defined 
Posted by
Glenn Yang

I code in Python, JavaScript, and C++; Open-source advocate; Hackathon participant and 'con enjoyer.