Dir*_*unn 3 python module init package
我知道python需要该__ init __.py
文件才能将目录识别为python包,这样我们就可以将子模块导入到我们的程序中.我可以看到类的相似性以及如何使用init来执行必要的代码.
但是,在python文档中,这一行让我困惑,
这样做是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径上发生的有效模块.
如下所示https://docs.python.org/2/tutorial/modules.html#packages
有人可以澄清一下吗?
文档非常明确 - 您的项目结构可能如下所示:
app
- common
- init.py
- resources
- string
- src
Run Code Online (Sandbox Code Playgroud)
如果Python隐式将目录视为包,则"string"目录可能会与Python的内置字符串模块(https://docs.python.org/2/library/string.html)进行名称冲突.这意味着在调用时import string
,模块是不明确的.
__init__.py
还添加了一些功能:初始化包时执行的代码,因此可用于执行某种类型的包设置.