reST 中是否需要 3-space 缩进?

Is 3-space indentation required in reST?

我正在使用 Sphinx 记录我的 Python 代码,并阅读 in the Python developer's guide(我认为其他地方也是如此)reST 文件使用 3 spaces 的缩进:

All reST files use an indentation of 3 spaces; no tabs are allowed.

这是我为索引文件复制的示例,以及我的 IDE 选择 3-space 缩进并将其用于整个页面的其他一些文件。 sphinx-apidoc 扩展还为它构建的 modules.rst 文件使用了 3 spaces。

另一方面,因为 Python 使用 4-space 缩进,所以我所有的文档字符串都缩进了 4 space。此外,由 sphinx-apidox 生成的 .. automodule:: 指令缩进了 4 space。

重点是,它仍然 有效 !所以我想知道 3-space 缩进是否是必需的,或者它是否是一种很好的做法,但只是在风格方面? (如果是这样,为什么,当所有东西 Python 都缩进 4-space 时?)

或者是否存在没有 3-space 缩进会破坏我的构建的情况?

我看过的其他地方


我开始认为 Python 开发人员指南可能是异常,而不是其他所有内容,特别是因为在我所有的搜索中我发现基本上没有讨论“3-or- 4 space problem" when working with Sphinx and Python.

正如您通过对权威来源和其他地方的研究发现的那样,除了选项列表至少 2 个空格和脚注至少 3 个空格之外,没有明确的缩进规范。见 specification on indentation for reStructuredText.

也就是说,有一些建议。

  1. 选择一种样式并使其与您的文档保持一致。
  2. IDE 经常抱怨缩进不正确,例如 Python 中的文档字符串,因此使用 4 个空格可以避免这些警告。
  3. IDE 可以设置为代码缩进 4 个空格,那么为什么不在文档中保持相同的缩进?
  4. 看我的.