Python中的模块(Module)和包(Package)区别为:
- 模块是一个包含Python代码的文件,以.py结尾。包是一个包含模块的文件夹。
mymodule.py #模块
mypackage/
__init__.py
module1.py
module2.py #包中的模块
- 导入方式不同
- 从模块导入使用import module
- 从包导入使用 import package.module
## python www.itzhimei.com 代码
import mymodule #导入模块
import mypackage.module1 #导入包中的模块
- 包有显式导出接口
包中的init.py定义了包的显式接口,控制哪些模块可以被导入。
## python www.itzhimei.com 代码
# mypackage/__init__.py
from .module1 import x
from .module2 import y
- 包支持嵌套
包可以包含子包,形成嵌套的层级结构。
project/
utils/
__init__.py
tool1.py
app/
__init__.py
main.py
- 模块没有命名空间
而包提供了一个独立的命名空间,可以避免不同包的模块命名冲突。
所以模块适合单文件代码,包适合组织复杂项目。