Skip to main content

Python 入门基础知识 - 模块包

Python 入门基础知识 - 模块包

模块包

在Python中可以使用包来管理多个模块。使用Python中的模块包可以通过路径导入模块。

使用包的好处在于可以有效避免名字冲突,便于包的维护管理。

1、包的组成

包可以看成是处于同一目录中的模块。在Python中首先使用目录名,然后使用模块名导入所需要的模块。

在包的每个目录中都必须包含一个名为"__init__.py"(init的前后均有两条下划线)的文件。"__init__.py"可以是个空文件,

仅用于表示改目录为一个包。

"__init__.py"的主要用途是设置"__all__"变量以及包含包初始化所需要的代码。对于在导入包内所有名字时在from中使用"*"

通配符的情况,在"__init__.py"设置"__all__"变量可以保证名字的正确导入。一个简单的Python包的目录组成如下:

|A
--|__init__.py
--|B
  --|__init__.py
  --|a.py
--|C
  --|__init__.py
  --|a.py
  --|b.py

如果需要导入B目录中的a.py模块,可以使用如下语句

from A.B import a # 使用from导入模块
import A.B.a # 使用import导入模块

有了包的概念就可以很好的解决模块查找路径的问题。只要将所有的模块放在当前目录中的某一文件夹内,然后在该文件夹中新建

一个空的"__init__.py"文件即可,而不必像前边的例子将子目录的路径添加到sys.path中。

2、包的内部引用

Python包中的模块也可能需要相互引用。对于上面的包结构中位于C目录中的b.py,如果要引用同样位于C目录中的a.py可以使用如下语句

import a

如果位于C目录中的b.py要引用位于B目录中的a.py,则需要使用如下语句。

from A.B import a
版权声明

版权声明

durban.zhang 创作并维护的 Walkerfree 博客采用 创作共用保留署名-非商业-禁止演绎4.0国际许可证。本文首发于 Walkerfree 博客(http://www.walkerfree.com/),版权所有,侵权必究。本文永久链接:http://www.walkerfree.com/article/47