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__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'a': <function a at 0x000001501E43C1E0>, 'test': <function test at 0x000001501E773378>}
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=2 num=6