命名空间和作用域链

Posted albatorss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了命名空间和作用域链相关的知识,希望对你有一定的参考价值。

 

一。命名空间

1.内置命名空间

就是python解释器一启动就可以使用的名字,存储在内置命名空间中

内置的名字在启动解释器的时候被加载进内存里

2.全局命名空间

是在程序从上到下被执行的过程中一次加载进内存的

放置了我们设置的所有变量名和函数名

3.局部命名空间

就是函数内部定义的名字

当调用函数的时候 ,才会产生这个名称空间,随着函数执行的结束,这个命名空间又消失了

4.#

1.在正常情况下,直接使用内置的名字

2.当我们在全局定义了和内置名字空间中同名的名字的时候,会使用全局的名字

3.当我自己有的时候,我就不找我上级要了

4.如果自己没有,就找上一级要,上一级如果没有,再找上一级,如果内置的名字空间都没有,就报错

5.多个函数应该拥有多个独立的局部名字空间,不相互分享

二。作用域

1.全局作用域

作用在全局,内置湖人全局名字空间中的名字都属于全局作用域----------globals()

2.局部作用域

作用在局部,函数(局部名字空间中的名字属于局部作用域)----------locals()

3.#

1.对于不可变数据类型,在局部可以查看全局作用域中的变量,但是不能直接修改

2.如果想要修改,需要在程序的一开始添加global声明

3.如果在一个局部(函数)内声明了一个global变量,那么这个变量在局部的所有操作将对全局的变量有效

4.globals

永远打印全局的名字

5.locals

local    本地的

所以当local写在全局作用域时打印全局的名字

当;local写在局部作用域时打印局部的名字

 

 

以上是关于命名空间和作用域链的主要内容,如果未能解决你的问题,请参考以下文章

函数的闭包和装饰器

函数的进阶

python基础篇

C# 常用 命名空间都有哪些 这些命名空间是的作用是?

python命名空间和作用域

函数(命名空间和作用域)