1.locals() 和 globals() 是python 的内建函数,他们提供了字典的形式访问局部变量和全局变量的方式。
locals:表示返回当前作用域中的局部变量globals:表示返回当前作用域的全局变量>>> def test(num):... a=1... b=2... print(locals())... print(globals())...>>> test(5){ 'num': 5, 'a': 1, 'b': 2}{ '__name__': '__main__', '__doc__': None, '__package__': None, '__loader__':, '__spec__': None, '__annotations__': {}, '__builtins__': , 'a': , 'test': }
2.locals() 返回是当前局部变量的深拷贝,修改locals() 中变量值的时候,实际上对于原变量本身是没有任何影响的。而globals()返回的是全局变量的字典,修改其中的内容,值会真正的发生改变。
>>> num=1>>> def test2():... a=2... locals()["a"]=3... print("a=%s"%a)... globals()["num"]=6... print("num=%s"%num)...>>> test2()a=2num=6