【问题标题】:What is the purpose of the __init__.py? [duplicate]__init__.py 的目的是什么? [复制]
【发布时间】:2013-05-08 03:42:44
【问题描述】:

在创建 Python 包时,我被告知要创建一个名为 init.py 的空白文件。我不明白为什么我需要创建这个文件。 distutils 构建脚本没有修改它,所以五个构建之后它仍然是空白的。它的目的是什么?

【问题讨论】:

  • 你真的应该至少在你不明白的时候看一下教程。它的存在是有原因的。
  • @abarnert - 我使用的教程 (guide.python-distribute.org/quickstart.html) 没有提到它的用途,只是为了创建它。
  • 该教程用于设置您的软件包以与其他人共享。它或多或少假设您已经基本了解包的工作原理。
  • 这里有一个误解是“包”:一个Python包是一个目录,可以作为一个模块导入,并且包含其他模块;这与进口有关,与包装无关。
  • @ÉricAraujo:对于新手来说,“可以作为模块导入的目录”和“您从 PyPI 安装的东西,这可能是一个模块、包或以上多个”。

标签: python python-3.x distutils


【解决方案1】:

它向 Python 发出信号,表明该文件夹是一个包,而不仅仅是一个文件夹。 它还包含在将包imported 到脚本中时运行的初始化代码。

请参阅the docs on the subject 了解更多信息。最相关的摘录:

__init__.py 文件是让 Python 处理 包含包的目录;这样做是为了防止 无意中使用通用名称的目录,例如 string 隐藏稍后出现在模块搜索路径上的有效模块。在 最简单的情况,__init__.py 可以只是一个空文件,但它可以 还执行包的初始化代码或设置__all__ 变量,稍后介绍。

【讨论】:

    猜你喜欢
    • 2015-09-28
    • 2015-07-13
    • 2021-06-08
    • 2019-10-06
    • 2018-04-26
    • 1970-01-01
    • 2021-05-14
    相关资源
    最近更新 更多