首页 > 解决方案 > __init__.py 中的类实现

问题描述

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

然后有一个像 Python Collections这样的包。它__init__.py包含不同 Collection 对象的实现。

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

标签: python

解决方案


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


推荐阅读