在 Python 中,locals()是一个内置函数,返回一个包含当前作用域中所有局部变量的字典。在函数内部,locals()返回该函数的局部变量。在模块级别上,locals()返回全局变量。

在函数内部使用时,修改locals()返回的字典不会影响局部变量的值;

但在模块级别上使用则不同,在全局作用域中,locals()实际就是globals()。参考:

a = 123

def foo():
    x = 3.14
    y = "hello"

    print(locals())
    # 局部作用域中无法修改
    locals()['x']= 5
    print(x)

foo()
# 全局作用域中可修改
locals()['a'] = 456
print(a)

程序运行结果:

{'x': 3.14, 'y': 'hello'}
3.14
456