本文摘自php中文网,作者不言,侵删。
本篇文章给大家带来的内容是关于python中命名空间的三种方式介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。python中的命名空间分三种:
内置的命名空间,在启动解释器的时候自动加载进内存的各种名字所在的空间,比如print,input等不需要定义就可以使用的名字
全局命名空间,就是从上到下所有我们定义的变量名和函数名所在的空间,是在程序从上到下被执行的过程中加载进内存的。
局部命名空间,比如函数在执行时所开辟的空间,里面存放了函数内部定义的各种名字,随着函数执行结束 这个局部命名空间就消失了。
在局部命名空间可以使用全局和内置命名空间中的名字
在全局命名空间可以使用内置命名空间中的名字,但不能使用局部命名空间的。
在内置命名空间不能使用全局和局部的名字。
可以形象地理解成内置命名空间具有最高级别,不需要定义就可以使用,全局命名空间次之,最低级是局部命名空间。
当低级命名空间使用名字时首先会在自身的命名空间里查找,如果有就使用,没有的话就到上一级命名空间内查找,如果有就使用,没有就继续到更上一级空间内查找,直到顶层的内置命名空间,如果有就使用,没有则会报错。
举个例子如下:
1 2 3 4 5 6 7 8 9 10 |
|
再看一个例子:
1 2 3 4 5 |
|
与命名空间有关的两个函数globals()和locals()
可以用globals()查看全局命名空间的所有定义的名字
可以用locals()查看当前命名空间的所有定义的名字,在全局则返回全局,在局部则返回局部
这两个函数的返回值可以看作是字典,格式都是{key1:value1,key2:value2,.....}
当函数1内嵌套函数2时,对于函数1内的不可变数据类型的变量,函数2内可以引用,但不可修改
1 2 3 4 5 6 7 8 9 |
|
1 2 3 4 5 6 7 8 9 10 11 |
|
nonlocal只能作用于局部变量,当使用后它会自动查找上一级局部命名空间是否有该变量,如果没有继续向上查找,直到最上一级“局部命名空间”
以上就是python中命名空间的三种方式介绍(附示例)的详细内容,更多文章请关注木庄网络博客!!
相关阅读 >>
Python中import 与__import__() 之间的区别比较
更多相关阅读请进入《Python》频道 >>

Python编程 从入门到实践 第2版
python入门书籍,非常畅销,超高好评,python官方公认好书。