__init__.py
文件在 Python 包中有几个关键作用,主要是将一个目录标记为一个 Python 包,同时定义包的内容。它可以为空,但通常用于导入包内的模块、定义包级别的变量,或执行一些初始化代码。以下是一些常见用法和代码示例:
1. 标记目录为 Python 包
__init__.py
的最基本作用就是将文件夹标记为 Python 包。即使是空文件,它的存在表明这个目录可以被作为模块导入。例如:
mypackage/
__init__.py
module1.py
module2.py
在这里,mypackage
就是一个包,可以通过 import mypackage.module1
来导入 module1
模块。
2. 包的初始化代码
__init__.py
可以包含包初始化时的代码,比如设置配置项或打印初始化信息:
# mypackage/__init__.py
print("Initializing mypackage")
导入 mypackage
时,这条打印语句就会执行。
3. 定义包的公共接口
__init__.py
还可以通过导入子模块和函数,定义包的公共接口,使得导入更便捷。例如:
# mypackage/__init__.py
from .module1 import function1
from .module2 import function2
__all__ = ["function1", "function2"]
这样可以通过 from mypackage import function1, function2
来直接使用这些函数,而无需分别导入子模块。
4. 管理包的版本信息
可以在 __init__.py
中定义包的版本号,以便于在代码中使用:
# mypackage/__init__.py
__version__ = "1.0.0"
使用时可以通过 mypackage.__version__
获取版本号。
示例结构
一个简单的包结构如下:
mypackage/
__init__.py
module1.py
module2.py
代码内容:
# mypackage/module1.py
def function1():
print("Function 1 from module1")
# mypackage/module2.py
def function2():
print("Function 2 from module2")
# mypackage/__init__.py
from .module1 import function1
from .module2 import function2
__version__ = "1.0.0"
这样使用 mypackage
时,可以直接:
import mypackage
mypackage.function1() # 输出: Function 1 from module1
mypackage.function2() # 输出: Function 2 from module2
print(mypackage.__version__) # 输出: 1.0.0
以上就是 __init__.py
的作用和常见用法。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...