博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python的命名空间
阅读量:4353 次
发布时间:2019-06-07

本文共 723 字,大约阅读时间需要 2 分钟。

定义

  名称到对象的映射。命名空间是一个字典的实现,键为变量名,值是变量对应的值。各个命名空间是对立没有关系的,一个命名空间中不能有重名,但是不同的命名空间可以重名且没有任何影响。

 

分类:

  python程序执行期间会有2个或3个活动的命名空间(函数调用时有3个,函数调用结束后2个)。按照变量定义的位置,可以划分为以下3类:

  Local局部命名空间,每个函数所拥有的命名空间,记录了函数中定义的所有变量,包含函数的入参、内部定义的局部变量。

  Global全局命名空间,每个模块加载执行时创建的,记录了模块中定义的变量,包括模块中定义的函数、类、其他导入的模块、模块级的变量和常量。

  Built-in:python自带的内建命名空间,任何模块均可以访问,放着内置的函数和异常。

 

生命周期:

  Local(局部命名空间):在函数被调用时才被创建,但函数返回结果或抛出异常时被删除。(每一个递归函数都拥有自己的命名空间)。

  Global(全局命名空间):在模块被加载时创建,通常一直保留知道python解释器退出。

  Built-in(内建命名空间):在python解释器启动时创建,一直保留直到解释器退出。

 

  各命名空间创建顺序:python解释器启动 -> 创建内建命名空间 -> 加载模块 -> 创建全局命名空间 -> 函数被调用 -> 创建局部命名空间

  各命名空间销毁顺序:函数调用结束 -> 销毁函数对应的局部命名空间 -> python虚拟机(解释器)退出 -> 销毁全局命名空间 ->销毁内建命名空间

 

转载于:https://www.cnblogs.com/wu-xw/p/11156053.html

你可能感兴趣的文章
Oracle查询语句中指定索引时优化器及指定索引不好使的处理方法
查看>>
webpack2.0 基本使用
查看>>
vue axios全攻略
查看>>
解决使用phpmyadmin导出导入数据库时提示的“超出长度”、“超时”问题
查看>>
FIR滤波器的FPGA实现方法
查看>>
CABasicAnimation
查看>>
Codeforces 916 二进制1数目构造(阅读理解) 最小生成树1-N路径质数构造
查看>>
启动Eclipse时发生An internal error occurred during: "Initializing Java Tooling"错误
查看>>
Qt:禁止qDebug的输出
查看>>
word、pdf、ppt 转为图片
查看>>
000 关于IDEA的基本环境配置以及快速使用(git拉载程序,Jdk安装,tomcat部署,应用程序打包运行)...
查看>>
20162302 《程序设计与数据结构》第八周学习总结
查看>>
web容器 web服务器 servlet/jsp容器 之间的区别和关系
查看>>
78,90,Subsets,46,47,Permutations,39,40 DFS 大合集
查看>>
在Static控件上显示图片
查看>>
ORACLE 数据库基本参数查询
查看>>
iOS - CAReplicatorLayer 的运用
查看>>
iOS 8自动调整UITableView和UICollectionView布局
查看>>
哈佛精神
查看>>
c++
查看>>