解读Python中 locals() 和 globals() 内置函数

为君一笑 提交于 2019-11-30 02:44:46
首先globals() 和 locals() 是作用于作用域下的内置函数,所以我将它们分为作用域类型的内置函数1.作用域相关:    1)globals() # 返回全局作用域中的所有名字    2)locals()  # 返回本地作用域中的所有名字可能对于这个作用域相关的内置函数,大家一接触都会很懵,这个东西是干什么的?它怎么用?今天小编就给大家来解释一下,首先我们来先看下官方的解释:    globals()——获取全局变量的字典    locals()——获取执行本方法所在命名空间内的局部变量的字典什么意思呢?首先我们一定知道什么叫全局变量和局部变量吧,全局变量就是作用在全局。也就是说整个.Py文件中。而局部变量,在我们现在仅有的学习中,就是在一个函数内有效。首先我们先在全局的情况下分别使用globals() 和 locals () 两个内置函数print(globals())print(locals())答案:{'__name__': '__main__', '__doc__': None, '__package__': None ......}{'__name__': '__main__', '__doc__': None, '__package__': None ......}首先我们先在局部的情况下分别使用globals() 和 locals () 两个内置函数a = 2def func():    b = 1    print(globals())    print(locals())func()答案:{'__name__': '__main__', '__doc__': None, '__package__': None, 'a' = 2 ......}{'b' = 1}通过这两个例子,我们不难看出 ,globals()作用在全局,返回改作用域下的所有信息。locals()作用在局部,返回改作用域下的所有信息。区别是:globals() 无论将他放在全局还是局部它打印的都是全局作用域下的信息。而locals()是打印当前自己所在作用域的信息,在全局打印全局,在哪个位置的局部就打印哪个位置局部下的作用域信息。
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!