【问题标题】:Can I put a class definition into __init__.py?我可以将类定义放入 __init__.py 吗?
【发布时间】:2017-12-10 16:33:04
【问题描述】:

我有一个类结构类似于this 的包。 Base 类是一个典型的、简单的父类,用于几个单独的层次结构。

我的包布局如下:

__init__.py (empty)
base.py
ab.py
cd.py
ef.py

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

【问题讨论】:

  • 我会把它留在 base.py 中,但是在 __init__.py 中写入类似 from base import Base 这样的内容,这样您就可以直接从 my_package 中导入 Base,例如 @ 987654329@

标签: python


【解决方案1】:

将它留在base.py 中是非常好的和更灵活的方法。另请注意,__init__.py 的主要用途是初始化 Python 包,而不是保存内容。

为了避免每次都必须导入模块,您可以编写类似

的内容
# in __init__.py
from .base import Base

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

# some script
from my_package import Base

这是一种在包级别使对象可用的常用方法

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

【讨论】:

  • 那么将课程放在__init__.py 中的缺点是什么?
猜你喜欢
  • 2010-11-25
  • 2010-10-09
  • 1970-01-01
  • 2019-08-18
  • 1970-01-01
  • 2013-06-27
  • 1970-01-01
  • 2019-07-17
  • 2020-03-02
相关资源
最近更新 更多