程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

很多人不知道python包的初始化模块文件作用

hfteth 2025-07-07 18:26:38 技术文章 2 ℃

我自己看过不少热门的python编程书籍,通常都是入门级别的。

有些数据写的非常简单,非常容易入门,但是看完发现好像没学好。有些书写的非常全面,却没有重点。

比如,包的__init__.py模块的具体作用很多书上都没有讲解。

我在这里简单介绍一下__init__.py模块作用,下面我用初始化文件这个名称来代替它把。


标记作用

初始化文件第一个显而易见的作用是标记这个文件夹是一个python的包,没错,这是他的第一作用。

导出包内容

那么他还有第二个作用,就是可以用来导出模块下的内容。现在我举个例子,假设有一个名为my_package的包,包含以下文件结构:

my_package/
├── __init__.py
├── module1.py
└── module2.py

在module1.py中,定义了一个函数function1:

def function1():
    print("This is function 1 in module 1")

在__init__.py文件中,你可以使用以下代码来导出包下的内容:

from .module1 import function1

__all__ = ['function1']

这样,当你在其他地方导入my_package时,可以直接访问function1了。当然,我们在写初始化文件时,也可以结合__all__变量来使用。

初始化数据

除了控制导出内容,还可以初始化数据,具体来讲,就是这个包下的模块经常要使用通用的一些变量,这个时候,就可以将变量定义在初始化文件中。比如一些配置文件可以json的格式放到磁盘上,然后通过初始化文件读取后,在其他模块就可以直接调用了。


最近发表
标签列表