# __init__.py 示例代码
# 1. 空的 __init__.py 文件
# 这是最简单的形式,只是用来标记当前目录为一个 Python 包。
# 在 Python 3.3 及以上版本中,即使没有 __init__.py 文件,目录也可以被视为包,但为了兼容性和明确性,通常还是建议包含它。
# 文件内容:
"""
# __init__.py
"""
# 2. 包含初始化代码的 __init__.py 文件
# 你可以在 __init__.py 中执行一些初始化操作,例如导入子模块或设置包的属性。
# 文件内容:
"""
# __init__.py
# 导入子模块
from .module1 import *
from .module2 import *
# 设置包的属性
__version__ = '0.1.0'
__author__ = 'Your Name'
# 初始化代码
print("Package has been initialized.")
"""
# 3. 控制导出接口的 __init__.py 文件
# 你可以使用 __all__ 列表来控制从包中导入时哪些符号是公开的。
# 文件内容:
"""
# __init__.py
# 导入子模块
from .module1 import func1, func2
from .module2 import Class1, Class2
# 控制导出接口
__all__ = ['func1', 'Class1']
"""
# 4. 动态加载子模块的 __init__.py 文件
# 你可以根据某些条件动态加载子模块。
# 文件内容:
"""
# __init__.py
import os
def load_modules():
modules = []
for filename in os.listdir(os.path.dirname(__file__)):
if filename.endswith('.py') and not filename.startswith('_'):
module_name = filename[:-3]
modules.append(module_name)
__import__(f"{__name__}.{module_name}")
return modules
__all__ = load_modules()
"""
空的 __init__.py 文件:最简单的情况,只是为了标记当前目录为一个 Python 包。在 Python 3.3 及以上版本中,即使没有 __init__.py 文件,目录也可以被视为包,但为了兼容性和明确性,通常还是建议包含它。
包含初始化代码的 __init__.py 文件:可以在文件中执行一些初始化操作,例如导入子模块或设置包的属性。这样可以确保在导入包时自动执行这些操作。
控制导出接口的 __init__.py 文件:通过 __all__ 列表来控制从包中导入时哪些符号是公开的,避免不必要的符号被导入。
动态加载子模块的 __init__.py 文件:可以根据某些条件动态加载子模块,灵活性更高,适用于复杂的包结构。
上一篇:python 格式化字符串
下一篇:python集合的基本操作
Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3
Laravel 中文站