15

我刚刚开始在我的 python 项目中指出我需要开始使用多个包,我对所有东西应该如何协同工作有点困惑。__init__.py包装中究竟应该包含什么?我看到的一些项目只有空白的初始化,它们的所有代码都在该包的模块中。其他项目似乎在 init 中实现了包的大部分类和函数。

__init__是否有文档或样式指南或描述python作者对使用包和文件等的想法?

编辑:
我知道让__init__.py文件最简单的意义在于它使文件夹成为一个包。但是为什么我要在同一个文件夹(包)中放一个函数而不是一个模块?

4

2 回答 2

8

__init__.py可以为空,但它真正做的是确保 Python 正确处理您的目录,提供导入包时您可能需要的任何初始化(配置环境或类似的东西),或定义__all__以便 Python 知道该做什么当有人使用from package import *.

您需要了解的大部分内容都在 Packages 的文档中进行了描述。Dive Into Python 也有一篇关于包装的文章。

于 2010-11-08T01:59:11.770 回答
1

您已经知道,我猜需要 __init__.py 文件才能使 Python 将目录视为包含包。

  1. 在上述模型中 __init__.py 可以保持为空。

  2. 您还可以执行包的初始化代码。

  3. 您还可以设置 __all__ 变量。

[编辑:学习] 当您执行“从包导入项目”或“从包导入 *”时,变量 __all__ 可用于导入选定的包。

请参阅:http ://docs.python.org/tutorial/modules.html

于 2010-11-08T02:03:06.793 回答