【Python】Python模块和包的区别是什么?

Python中的模块(Module)和包(Package)区别为:

  1. 模块是一个包含Python代码的文件,以.py结尾。包是一个包含模块的文件夹。
mymodule.py #模块

mypackage/
    __init__.py
    module1.py
    module2.py #包中的模块
  1. 导入方式不同
  • 从模块导入使用import module
  • 从包导入使用 import package.module
## python www.itzhimei.com 代码
import mymodule  #导入模块
import mypackage.module1 #导入包中的模块
  1. 包有显式导出接口
    包中的init.py定义了包的显式接口,控制哪些模块可以被导入。
## python www.itzhimei.com 代码
# mypackage/__init__.py

from .module1 import x
from .module2 import y
  1. 包支持嵌套
    包可以包含子包,形成嵌套的层级结构。
project/
  utils/
    __init__.py
    tool1.py
  app/
    __init__.py
    main.py
  1. 模块没有命名空间
    而包提供了一个独立的命名空间,可以避免不同包的模块命名冲突。

所以模块适合单文件代码,包适合组织复杂项目。