python需要什么原因
这个问题在这里已经有了答案:
文档非常清晰 - 您的项目结构可能如下所示:
app
- common
- init.py
- resources
- string
- src
如果Python的隐式处理的目录作为包,将“串”目录可能出现名称冲突与Python的内置字符串模块(https://docs.python.org/2/library/string.html)。 这意味着在调用import string
,模块不明确。
__init__.py
还增加了一些功能:初始化包时执行代码,因此可用于执行某种软件包安装。
如果你有一个不是包的名为string
的目录,在Python搜索模块和包的位置(比如当前的工作目录)中,当你import string
时,Python不应该尝试导入它。 __init__.py
要求让Python知道它应该继续下去,而不是将该目录视为一个包。
这是为了防止具有通用名称的目录(例如字符串)无意中隐藏稍后在模块搜索路径中发生的有效模块。
假设你有一个你为学校工作的目录,其中一些涉及python。 你有一个数学目录,你称之为数学。 你也有一个你写的python模块,所以顶级目录“school”已经被添加到python路径中,所以你可以在任何地方使用它
School/
math/
hw1.txt
integrate.py
MyPythonModule/
__init__.py
someClass.py
someFunc.py
当您以后使用python并且您正在搜索MyPythonModule时,python将打开School/
然后它看到math/
和MyPythonModule/
如果你在你的Python程序中使用数学,并没有办法区分模块../lib/site-packages/math/
和非模块../School/math/
然后python会把你的文件作为包装数学处理../School/math/
; 不知道为什么会破坏代码。