In Python, every program has a symbol table that contains information about the names (variables, functions, and classes) defined in the program. The global() function allows us to access and manipulate the global symbol table, providing valuable information about the current global variables in the program. In this article, we will learn how these globals() functions work and what we can do with this function in Python.
In Python, each program has a symbol table, which contains information about the names (variables, functions, classes, etc.) defined in the program. A symbol table is represented by a dictionary, where names are keys and associated values represent their current values or references.
globals() function returns a dictionary representing the current global symbol table. It provides access to all global variables in the current scope and their corresponding values. By inspecting this dictionary, we can programmatically retrieve, modify, or delete global variables.
globals()
Here, the globals() function does not accept any parameters, it just returns a dictionary representing the global symbol table.
Retrieving global variables in Python can be accomplished using the globals() function, which returns a dictionary representing the current global symbol table. By accessing this dictionary and iterating its items, you can retrieve the names and values of all global variables in the current scope.
In the following example, we define three global variables: x, y and z. We also define a function print_globals() which calls the globals() function to retrieve the global symbol table. By iterating over the items of the resulting dictionary, we print the names and values of all global variables. Furthermore, we can see that the function print_globals() itself also exists in the global symbol table.
x = 10 y = 5 z = "Hello, World!" def print_globals(): global_vars = globals() for name, value in global_vars.items(): print(f"{name}: {value}") print_globals()
__name__: __main__ __doc__: None __package__: None __loader__: <_frozen_importlib_external.SourceFileLoader object at 0x7f9b30a74a30> __spec__: None __annotations__: {} __builtins__:__file__: /home/cg/root/22219/main.py __cached__: None x: 10 y: 5 z: Hello, World! print_globals:
globals() function not only allows us to retrieve global variables, but also allows us to modify their values.
In the following example, we define a global variable x with an initial value of 10. The modify_global() function uses globals() to retrieve the global symbol table and modifies the value of x to 20 by updating the dictionary entry directly. When we print the value of x before and after calling the modify_global() function, we can see that the modification has taken effect.
x = 10 def modify_global(): global_vars = globals() global_vars['x'] = 20 print("Before modification:", x) modify_global() print("After modification:", x)
Before modification: 10 After modification: 20
We can also use the globals() function to dynamically add new global variables. Let's look at an example that demonstrates the same thing.
In the following example, we define a function add_global() that uses globals() to add a new global variable named new_var to the global symbol table. After calling the function, we print the value of new_var, which confirms that the variable was successfully added and is globally accessible.
def add_global(): global_vars = globals() global_vars['new_var'] = "I'm a new global variable!" add_global() print(new_var)
I'm a new global variable!
In this article, we discussed what the globals() function is and what it is used for. The globals() function is used to access and operate global variables in the program. By using this function, we can dynamically retrieve, modify or add global variables. By using the power of the globals() function, you can improve your Python programming skills by giving you greater control over your program's global variables.
The above is the detailed content of In Python, the globals() function returns a dictionary of all variables and functions defined in the current global scope.. For more information, please follow other related articles on the PHP Chinese website!