Python为什么需要在包中使用<code>init.py</code>文件?
Python为什么需要在包中使用<code>init.py</code>文件?
这个问题已经有了答案:
我理解Python需要__init__.py
文件才能识别目录作为Python包,这样我们就可以将子模块导入到我们的程序中。我可以看到与类的相似之处,以及init如何用于立即执行必要的代码。
然而,在Python文档中,这行代码让我感到困惑,
这是为了防止具有共同名称(例如string)的目录无意中隐藏在后面的模块搜索路径中出现的有效模块。
如此看来,https://docs.python.org/2/tutorial/modules.html#packages
请有人能澄清一下吗?
admin 更改状态以发布 2023年5月23日
文档已经非常明确了 - 您的项目结构可能如下所示:
app - common - init.py - resources - string - src
如果Python隐式地将目录视为包,"string"目录可能会与Python内置的字符串模块 (https://docs.python.org/2/library/string.html) 发生名称冲突。这意味着在调用import string
时,该模块是不明确的。
__init__.py
也添加了一些功能:在初始化包时执行代码,因此可用于进行某些类型的包设置。