浅析 Python中__init__.py

当采用IDE新建一个package时,IDE一般会自动生成一个__init__.py文件,那么这个文件有什么作用?
我理解__init__.py 类似于Python中__init__(self)方法,类似于模块的构造函数,在对模块进行import时,会自动加载并解析__init__.py 文件。
因此,可以利用__init__.py 对 package 进行一些操作。

限制包的引出模块

通过在__init__.py 文件中添加 all = [] 指定package 可以对外引出的 类 。

添加package 中代码公用引入信息,减少重复代码

如 logging 模块中 最外层代码中__init__.py中 存在

import sys, os, time, io, traceback, warnings, weakref, collections

添加package模块公用初始化信息

类似于import 代码 添加模块初始化信息,减少代码重复。

总之__init__.py 既是package的标志,也是一个py文件,且在import 模块时加载,因此可以将模块中通用的代码放入__init__py,也可以现在模块对外开放的信息。

posted @ 2021-02-02 16:01  徐徐前行  阅读(182)  评论(0编辑  收藏  举报