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