zoukankan      html  css  js  c++  java
  • python的命名空间

    定义

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

    分类:

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

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

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

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

    生命周期:

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

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

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

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

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

  • 相关阅读:
    目前博客园NB团队成员名单
    [征询意见]博客园准备组建在线培训团队
    [调查]园子里有哪些朋友在做开源项目
    都是百度惹的祸
    准备成立NBear开源项目团队—博客园NB团队
    [公告]欢迎各地.NET俱乐部负责人与我联系
    [公告]服务器搬迁
    VS 2005 文本编码小技巧
    Net Framework 2.0 事务处理
    ArgoUML 开源UML 建模工具
  • 原文地址:https://www.cnblogs.com/wu-xw/p/11156053.html
Copyright © 2011-2022 走看看