我一直在研究__init__.py
文件,并看到建议是在那里处理软件包的导入和/或进行一些初始化。
然后有一个类似Python Collections的软件包。 __init__.py
包含不同Collection对象的实现。
为什么要将实现放在包中的__init__.py
中而不是专用的.py
文件中?这是一个好主意吗?是设计模式吗?
答案 0 :(得分:2)
在这种特殊情况下,根本不需要一个带有__init__.py
文件的目录,因为该模块中唯一的其他文件是abc.py
,它本身未定义任何内容。因此,如果不是abc.py
,整个事情应该只是collections.py
而不是collections/__init__.py
。那么,为什么呢?纯粹出于向后兼容的原因。他们不想破坏from collections.abc import ...
,但想在内部移动东西。