globals()是 Python 内置函数之一,用于返回当前全局作用域中所有变量的字典。这个字典包含了所有已定义的全局变量,键为变量名,值为对应的值。
可以通过修改这个字典中的变量来更新全局作用域中的变量。
globals() 函数示例
下面是一个简单的示例,展示了globals()函数的用法:
a = 10
b = 20
def test_func():
# c 不属于全局变量
c = 30
for key,value in globals().items():
print(key,value)
test_func()
程序运行结果
__name__ __main__
__doc__ None
__package__ None
__loader__ <_frozen_importlib_external.SourceFileLoader object at 0x000001DF5202B460>
__spec__ None
__annotations__ {}
__builtins__ <module 'builtins' (built-in)>
__file__ d:\src\Python\main.py
__cached__ None
a 10
b 20
test_func <function test_func at 0x000001DF51FEF040>
通过修改globals()返回的字典来实现修改全局变量的值:
x = 5
def change_x():
# 不需要使用 global 关键字
global_vars = globals()
global_vars['x'] = 10
# 添加新的全部变量
global_vars['y'] = 20
change_x()
print(x, y) # 输出10 20