PYTHON

Python globals(): Syntax, Usage, and Examples

The globals() function in Python returns a dictionary that represents the current global symbol table. You can use this table to access or modify global variables at runtime. Whether you’re inspecting the environment, dynamically modifying variables, or building tools that interact with global state, understanding how to use globals() gives you deeper control over how your program behaves.

If you want to explore or manipulate global variables in Python in real time, the globals() function offers a built-in way to do it without importing anything extra.

How to Use Python globals()

The syntax is straightforward:

globals()

It returns a dictionary containing all global variables and functions accessible in the current module.

Basic Example

x = 10
print(globals()["x"])  # Output: 10

Here, globals() gives you access to the global variable x through dictionary-style lookup.

When to Use globals() in Python

Reach for globals() when you:

  • Want to inspect or debug variables in the global scope
  • Dynamically create or modify variables during runtime
  • Work on metaprogramming or plugin-style systems
  • Need to build interactive tools or interpreters
  • Are dealing with dynamically generated variable names

You typically use globals() in modules, scripts, or functions that need to access the outermost scope.

Practical Examples of Python Globals in Action

Access a Global Variable Inside a Function

x = 42

def read_global():
    print(globals()["x"])

read_global()  # Output: 42

Instead of declaring x global inside the function, you can access it directly with globals().

Modify a Global Variable Dynamically

def update_global(var_name, value):
    globals()[var_name] = value

update_global("score", 100)
print(score)  # Output: 100

This dynamic approach lets you assign values to variable names based on user input, configuration files, or other runtime data.

Create Variables Dynamically

for i in range(3):
    globals()[f"var_{i}"] = i

print(var_0, var_1, var_2)  # Output: 0 1 2

Useful in metaprogramming or environments where variable names are constructed dynamically.

View All Global Variables

print(list(globals().keys()))

This gives you an overview of all current variables and functions in the global scope. Great for debugging or interactive Python sessions.

Learn More About Globals Python Style

Understanding Global Scope

The global scope in Python refers to the area of the program where global variables are accessible. Variables created outside of functions are automatically added to the global scope.

language = "Python"

def display():
    print(language)

display()  # Output: Python

Here, language is a global variable. You can read it inside functions without any special declarations.

Difference Between globals() and locals()

  • globals() accesses variables in the global scope.
  • locals() accesses variables in the current local scope (e.g., inside a function).

def sample():
    x = 5
    print("Local:", locals())
    print("Global:", globals())

sample()

Use them together when writing debuggers, trace functions, or REPL-style tools.

Modifying Global Variables Inside Functions

Using globals() is one way to update global variables, but there's also the global keyword:

x = 5

def update():
    global x
    x = 10

update()
print(x)  # Output: 10

While global in Python works well for one or two variables, globals() scales better when working dynamically.

Check If a Global Variable Exists

This avoids exceptions when checking for optional configuration or optional imports.

Using Python Global Variables with Functions

Sometimes, you want functions to behave differently based on external global state:

mode = "dark"

def get_theme():
    return "Dark Mode" if globals()["mode"] == "dark" else "Light Mode"

print(get_theme())  # Output: Dark Mode

Real-World Use Cases

Dynamic Configuration Systems

config = {"host": "localhost", "port": 8080}

for key, value in config.items():
    globals()[key] = value

print(host, port)  # Output: localhost 8080

Assign configuration options as global variables at runtime.

Scripting Engines and REPLs

If you're building a tool that runs user-supplied code (like a mini Python interpreter), globals() lets you inject or extract variables from the global context safely.

Plugin Systems

You can use globals() to load plugins dynamically:

def register_plugin(name, func):
    globals()[name] = func

register_plugin("say_hello", lambda: print("Hello!"))
say_hello()

This approach makes it easy to inject new functionality at runtime.

Debugging and Introspection

Print or log your entire global scope to troubleshoot issues:

import pprint
pprint.pprint(globals())

This helps when diagnosing state problems or variable collisions.

Best Practices for Python Global Variables and globals()

  • Use global variables sparingly. Overusing them can make your code harder to debug and test.
  • Prefer globals() for tooling, meta-programming, or dynamic behavior—not for general application logic.
  • Avoid modifying Python global variables from multiple threads unless you're using proper synchronization.
  • Don’t rely on globals() in places where clear, local state would be better.

The Python globals function opens the door to dynamic introspection and variable manipulation. Whether you're debugging, writing interpreters, building plugin systems, or just exploring how your Python program behaves, understanding globals() gives you a flexible tool for working with your environment. Use it thoughtfully, and you'll unlock powerful patterns for advanced Python development.

Learn to Code in Python for Free
Start learning now
button icon
To advance beyond this tutorial and learn Python by doing, try the interactive experience of Mimo. Whether you're starting from scratch or brushing up your coding skills, Mimo helps you take your coding journey above and beyond.

Sign up or download Mimo from the App Store or Google Play to enhance your programming skills and prepare for a career in tech.

You can code, too.

© 2025 Mimo GmbH