我可以将一个类定义放入__init__.py吗?

mal*_*0ir 6 python

我有一个类似于的类结构的包. Baseclass是一个典型的,简单的父类,用于几个单独的层次结构.

我的包布局如下所示:

__init__.py (empty)
base.py
ab.py
cd.py
ef.py
Run Code Online (Sandbox Code Playgroud)

Base类放入__init__.py而不是仅为一个类创建单独的模块是一个好主意还是一个好习惯?通过这种方式,我不需要每次都在模块中导入它.

joj*_*ojo 8

它完全没问题,也是一种更灵活的方法base.py.另请注意,__ init__.py的主要用途是初始化Python包而不是保存内容.

为了避免每次都可以编写类似的东西而导入模块

# in __init__.py
from .base import Base
Run Code Online (Sandbox Code Playgroud)

进入__init__.py这样你就可以直接Base从my_package 导入:

# some script
from my_package import Base
Run Code Online (Sandbox Code Playgroud)

这是在包级别使对象可用常用方法.

有关该__init__.py文件的更多信息,请查看文档.

  • 那么将类放入`__init__.py`有什么缺点呢? (2认同)