在Python中,init.py 文件是一个特殊的文件,它用于将一个目录标记为一个Python包。这个文件可以是空的,也可以包含初始化代码,该代码会在导入包时运行。
作用一:标记目录为Python包
在一个目录下创建__init__.py文件,Python解释器会将这个目录视为一个包,而不是一个普通的目录。这样你就可以在这个包内定义模块,并且可以通过点号(.)语法来引用这些模块。
#目录结构
my_package/
__init__.py
module1.py
subpackage/
__init__.py
module2.py
#使用
import my_package.subpackage.module2
作用二:初始化代码
当Python首次导入一个包时,init.py文件中的代码会被执行。这可以用来设置包的状态,比如注册插件、初始化全局变量或者执行任何必要的设置操作。
# __init__.py 内容
print("Initializing my package...")
register_plugins()
作用三:控制__all__变量
用来控制包级别的__all__变量,这个变量是一个列表,它指定了当使用from package import *时应该导入哪些模块或对象。如果不定义__all__,Python会导入所有以_(下划线)开头的名称,这是不希望看到的,因为通常我们会使用_前缀来表示私有变量。
# __init__.py 内容
__all__ = ['module1', 'module2']
# 当使用from my_package import *时,只有module1和module2会被导入