python 中locals() 和 globals()的区别

时间:2019-06-18
本文章向大家介绍python 中locals() 和 globals()的区别,主要包括python 中locals() 和 globals()的区别使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

原文地址:https://www.cnblogs.com/ganiner/p/11047469.html