在 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