reST 中是否需要 3 空格缩进?



我正在使用Sphinx记录我的Python代码,并在Python开发人员指南中阅读(我认为在其他地方也是如此),reST文件使用3个空格的缩进:

所有 reST 文件都使用 3 个空格的缩进;不允许使用制表符。

我为索引文件复制的示例以及我的 IDE 选取 3 空格缩进并将其用于整个页面的其他一些文件就是这种情况。sphinx-apidoc扩展还为其构建的modules.rst文件使用 3 个空格。

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

关键是,这一切仍然有效!所以我想知道 3 空格缩进的东西是否是一种要求,或者它是否是一种很好的做法,但只是在风格方面?(如果是这样,为什么,当所有的东西都是4空格缩进时?

或者是否有没有 3 空格缩进会破坏我的构建的情况?

我看过的其他地方

  • Sphinx reStructuredText Primer没有提到特定数量的空格,只是:

    与 Python 一样,缩进在 reST 中很重要,因此同一段落的所有行必须左对齐到相同的缩进级别。

  • 这个(未回答的)SO问题,专门针对列表,而不是一般的间距
  • reStructuredText 标记规范在脚注中仅提到了 3 个空格。
  • GitHub上的这个问题,尽管我认为这里的问题是不同元素的缩进级别的混合。

我开始认为Python开发人员指南可能是异常,而不是其他一切,特别是因为在我所有的搜索中,在使用Sphinx和Python时,我基本上没有遇到关于"3或4空间问题"的讨论。

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

也就是说,有一些建议。

  1. 选择一种样式,并在文档中保持一致。
  2. IDE 经常抱怨缩进不正确,例如 Python 中的文档字符串,因此使用 4 个空格可以避免这些警告。
  3. 对于代码,IDE 可以设置为缩进到 4 个空格,那么为什么不对文档保持相同的内容呢?
  4. 请参阅我关于缩进编号列表的额外提示。

最新更新