`__init__` 对目录有什么区别?
在python中,包含一个或多个模块的目录有时会有__init__.py
,这样该目录就可以被视为一个pythonpackage
,这是正确的吗? __init__
有何不同? (还有另一个问题,Python 模块只是一个包含相关且可能独立(与其他文件)的类、函数和变量集的 Python 代码文件吗?)
In python, a directory containing one or more modules sometimes has __init__.py
, so that the directory can be treated as a python package
, is this correct? What differences the __init__
makes? (also another Q, is a python module just a python code-file with related and possibly independent (to other files) set of classes, functions and variables?)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是解释,说明为什么需要
__init__.py
:正如我刚刚向另一位发帖者推荐的那样,模块教程内容非常丰富。
Here's an explanation for why
__init__.py
is needed:As I've just recommended to another poster, the tutorial on modules is pretty informative.
另外,当被视为模块时,
__init__.py
的内容成为包的内容,即somepackage/__init__.py
的内容将在中找到>dir(somepackage)
当您导入 somepackage
时。模块本身可以是 Python 代码,特制的 C代码,或者它们可能是由注入的人工构造加载 Python VM 的可执行文件。
In addition, the contents of
__init__.py
becomes the contents of the package when treated as a module, i.e. the contents ofsomepackage/__init__.py
will be found indir(somepackage)
when youimport somepackage
.Modules themselves can be Python code, specially-crafted C code, or they could be an artificial construct injected by the executable that loads the Python VM.