globals()
返回表示当前全局符号表的字典。
在Python中,globals()
函数返回一个字典,代表了当前全局符号表。这个符号表包含了所有在全局范围内定义的变量和函数。使用 globals()
,你可以查看和修改全局变量的值。
示例 1:查看全局变量
x = 10
y = 20
def show_globals():
global_vars = globals()
print(global_vars)
show_globals()
输出:
{... 'x': 10, 'y': 20, 'show_globals': <function show_globals at 0x...>, ...}
这个例子中,定义了两个全局变量 x
和 y
,然后在函数 show_globals
中打印了全局变量。请注意,输出中还包含了很多其他的变量和函数,因为它们都是在全局范围内定义的。
示例 2:修改全局变量
x = 10
def modify_global_var():
globals()['x'] = 20
modify_global_var()
print(x) # 输出:20
在这个例子中,函数 modify_global_var
使用 globals()
修改了全局变量 x
的值。
示例 3:添加全局变量
def add_global_var():
globals()['z'] = 30
add_global_var()
print(z) # 输出:30
在这个例子中,函数 add_global_var
使用 globals()
添加了一个新的全局变量 z
。
示例 4:删除全局变量
x = 10
def delete_global_var():
del globals()['x']
delete_global_var()
try:
print(x)
except NameError as e:
print(e) # 输出:name 'x' is not defined
在这个例子中,delete_global_var
函数使用 globals()
删除了全局变量 x
,尝试打印 x
时会引发 NameError
异常。
注意事项:
- 使用
globals()
修改全局变量时要小心,因为这可能导致代码难以维护和理解。 globals()
返回的字典反映了全局变量的真实状态,所以对这个字典所做的任何修改都会直接影响到全局变量。