__init__.py中的类实现

时间:2019-05-22 11:31:54

标签: python

我一直在研究__init__.py文件,并看到建议是在那里处理软件包的导入和/或进行一些初始化。

然后有一个类似Python Collections的软件包。 __init__.py包含不同Collection对象的实现。

为什么要将实现放在包中的__init__.py中而不是专用的.py文件中?这是一个好主意吗?是设计模式吗?

1 个答案:

答案 0 :(得分:2)

在这种特殊情况下,根本不需要一个带有__init__.py文件的目录,因为该模块中唯一的其他文件是abc.py,它本身未定义任何内容。因此,如果不是abc.py,整个事情应该只是collections.py而不是collections/__init__.py。那么,为什么呢?纯粹出于向后兼容的原因。他们不想破坏from collections.abc import ...,但想在内部移动东西。