首页 > 代码库 > python 模块

python 模块

模块名称空间

  • 比如string模块中的atoi()函数就是string.atoi()。通过句点属性标识指定了各自的名称空间。

搜索路径和路径搜索

  • 模块的带入需要一个叫做“路径搜索”的过程。
  • 你需要导入某个模块,解释器会沿着“搜索路径顺序”来找到第一个符合要求的模块。

名称空间

  • 名称空间是名称到对象的映射。(namespace)
  • 三种名称空间,内建、全局、局部。

名称空间与变量作用域比较

  • 名称空间是纯粹意义上的名字和对象间的映射关系,
  • 而作用域还指出了用户代码的哪些物理位置可以访问到这些名字。

名称查找,确定作用域, 覆盖

访问一个属性时,解释器必须从三个名称空间中的一个找到它。首先从局部名称空间开始,接着全局名称空间,最后查找内建名称空间。

导入模块

一般导入模块的顺序:

  • python 标准库模块

  • python 第三方模块

  • 应用程序自定义模块

  • 空行分割这三类模块的导入语句。

  • import numpy as np 这是扩展的导入语句的用法。

  • 加载(load)只在第一次导入(import)的时候发生。

循环导入的问题

a模块需要一个新特性,于是我们写一个b模块,然后将它导入。然而b模块需要a模块的函数,所以b模块也需要导入a模块。这就会导致循环导入的问题。解决办法看情况。。。