2025-12-15
python中的一些特别性质文件
init.py
在Python工程里,当python检测到一个目录下存在__init__.py文件时,python就会把它当成一个模块(module)。Module跟C++的命名空间和Java的Package的概念很像,都是为了科学地组织化工程,管理命名空间。
主要作用:
标识目录为Python包
即使为空文件,目录中包含__init__.py也会被Python视为包(适用于Python 3.3之前的版本;3.3+支持"命名空间包",无需此文件)。初始化包级代码
当包被导入时,__init__.py中的代码会自动执行 (例如:初始化变量、连接数据库)。控制模块导入
批量导入 :简化用户导入路径(例:
from mypackage import func而非from mypackage.module import func)。**定义
__all__**:指定from package import *时导入哪些模块。隐藏内部实现 :可在
__init__.py中导入公共接口,隐藏内部模块。
共享包级变量/函数
在__init__.py中定义变量、函数或类,可在包的多个模块间共享。
执行顺序示例
mypackage/
├── init.py # (1)
├── module1.py
└── subpackage/
├── init.py # (2)
└── module2.py # (4)
当执行 import mypackage.subpackage.module2 时:
先执行外层包初始化 :
mypackage/__init__.py(1)再执行子包初始化 :
mypackage/subpackage/__init__.py(2)最后导入目标模块 :
module2.py(4)