__init__.py

基本原理

__init__.py文件的主要作用有:

  • 标识包:告诉Python解释器这个目录应该被视为一个Python包。
  • 初始化代码:可以在这个文件中执行包级别的初始化代码。
  • 控制可访问性:通过在__init__.py中重新组织导入的模块和包,可以控制从包外部可以访问哪些模块。

用于标识包(最重要的功能)

在Python中,任何包含__init__.py文件的目录都被视为一个包。init.py文件是必须的,即使它是空的,它也必须存在,否则Python解释器将不会将该目录视为包。

初始化代码

__init__.py文件可以用来执行一些初始化操作,当包被首次导入时,这些代码会被自动执行。


示例.png

在__init__.py文件中写上

from .module1 import foo
from .module2 import Bar

这样,在使用包时,可以直接做到更加简洁的导入:

from my_package import foo, Bar

而不是

from my_package.module1 import foo
from my_package.module2 import Bar

控制可访问性

通过在__init__.py中指定哪些模块是包的一部分,可以控制从包外部可以导入哪些模块。
通过在__init__.py文件中定义__all__变量,可以控制当使用from package import *时,哪些模块或子包会被导入。__all__应该是一个包含模块名(字符串)的列表。

# example_package/__init__.py
from . import module1, module2
__all__ = ['module1']
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容