命名空间(namespace

先了解第一个概念:命名空间。

命名空间是从命名到对象的映射。当前 pytyon 的命名空间是靠字典来实现的,但是对我们来说我们并需要关注这个,而且以后也有可能会更改。


命名空间的一些例子:

  1. 内置的命名集(the set of built-in names)。这命名集(命名空间)包含了像abs()这样的内置函数和内置的异常名等。

  2. 在一个模块中的全局命名集。

  3. 函数内的局部命名空间。

  4. 从某种意义上来说,一个对象的属性集也是一个命名空间。

对命名空间来说,需要要知道最重要的一点是:在不同的命名空间的中的命名绝对没有任何的关系!


不同的命名空间具有不同的生命周期。

  1. 包含内置命名的命名空间在 python 一启动就被创建了,而且在 python 程序结束之前永远不会被删除。

  2. 一个模块的全局命名空间是在这个模块被读入到内存的时候被创建。正常情况下全局命名空间也是在 python 结束之后才会被删除。

  3. 局部命名空间是在函数被调用的时候被创建。当函数结束或者抛了异常这个函数又没处理的时候,局部命名空间会被销毁。(用忘记这个局部命名空间可能更恰当)

  4. 当然,函数递归调用时,每调用一次都会创建一个新的局部命名空间。


Copyright © 李振超 2018 all right reserved,powered by Gitbook
该文件最后修订时间: 2018-02-25 07:12:09

results matching ""

    No results matching ""