__init__.py文件的作用

1.将目标标记成python包

在 Python 的文件系统中,__init__.py 文件用于将一个目录标记为一个 Python 包。如果没有这个文件,Python 解释器会将目录视为普通文件夹,而不是一个可以导入的模块或包。

例如,假设有一个目录结构如下:

           my_package/
                __init__.py
               module1.py
               module2.py

由于存在 __init__.py 文件,my_package 被视为一个 Python 包,可以通过 import my_package 来导入整个包,或者通过 from my_package import module1 来导入包中的模块。

2.初始化包的内容

__init__.py 文件可以包含初始化代码,这些代码会在导入包时自动执行。例如,可以在这个文件中定义一些全局变量、函数或者类,或者执行一些初始化操作。

例如:

# my_package/__init__.py
print("Initializing my_package")
version = "1.0.0"

当导入 my_package 时,会打印出 "Initializing my_package",并且可以在包外通过 my_package.version 访问版本号。

3.控制模块的导入

__init__.py 文件中,可以通过 import 语句导入包中的模块,从而控制哪些模块可以被外部访问。

例如:

# my_package/__init__.py
from . import module1
from . import module2
4.定义包的接口

__init__.py 文件可以定义包的公共接口,通过 __all__ 列表来指定哪些模块或对象可以被 from package import * 导入。

例如:

# my_package/__init__.py
from .module1 import func1
from .module2 import ClassA

__all__ = ["func1", "ClassA"]

这样,当使用 from my_package import * 时,只有 func1ClassA 会被导入。

5.支持相对导入

在包内部的模块之间,可以使用相对导入。__init__.py 文件的存在使得相对导入成为可能。

例如:

# my_package/module1.py
from . import module2

这里的 . 表示当前包,module2 是同一包中的另一个模块。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值