Python reST中是否需要3空间缩进?

Python reST中是否需要3空间缩进?,python,python-sphinx,restructuredtext,Python,Python Sphinx,Restructuredtext,我正在使用Sphinx记录我的Python代码,并读取(我认为在其他地方也是如此)reST文件使用了3个空格的缩进: 所有reST文件都使用3个空格的缩进;不允许使用选项卡 这就是我为索引文件复制的示例,以及一些其他文件的情况,其中IDE选择了3空间缩进并将其用于整个页面。sphinx apidoc扩展名还为它构建的modules.rst文件使用了3个空格 另一方面,由于Python使用4个空格的缩进,所以我所有的docstring都缩进了4个空格。此外,。。automodule::斯芬克斯ap

我正在使用Sphinx记录我的Python代码,并读取(我认为在其他地方也是如此)reST文件使用了3个空格的缩进:

所有reST文件都使用3个空格的缩进;不允许使用选项卡

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

另一方面,由于Python使用4个空格的缩进,所以我所有的docstring都缩进了4个空格。此外,
。。automodule::
斯芬克斯apidox生成的指令缩进4个空格

关键是,这一切仍然有效!所以我想知道3-空间缩进是一个要求,还是一个良好的实践,但只是在风格方面?(如果是这样的话,为什么Python的所有内容都是4-空格缩进的?)

或者,在某些情况下,没有3空间缩进将破坏我的构建

我看过的其他地方
  • 没有提到具体的空格数,只是: 在Python中,缩进在reST中很重要,因此同一段落的所有行必须左对齐到相同的缩进级别

  • 这是关于列表的,而不是一般的间距
  • 在参考中只提到了3个空格
  • 虽然我认为这个问题是不同元素的缩进级别的混合


我开始认为Python开发者指南可能是一个异常现象,而不是其他任何东西,特别是在我所有的搜索中,我在使用Sphinx和Python时基本上没有遇到关于“3或4空间问题”的讨论。

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

尽管如此,还是有一些建议

  • 选择一种样式,并使其与文档保持一致
  • IDE经常抱怨缩进不正确,比如Python中的docstring,所以使用4个空格可以避免这些警告
  • IDE可以设置为代码缩进到4个空格,那么为什么不在文档中保持相同呢
  • 看我的

  • 您引用的3空间规则来自样式指南。这是一个项目的风格规则。好吧,这里的“项目”是Python官方文档吗?与中一样,它是docs.python.org上文档的样式指南?是的。您正在阅读Python开发人员指南,我发现(由于缺乏严格的规范,经过反复试验)带有内容的指令要求内容缩进正好3个空格。2空间和内容不被视为指令的一部分;4空格和内容被视为每一行都以空格开头。这对于
    code
    和其他文本显示指令来说真的很烦人,因为stuff本身有4个空格的缩进,而开始缩进必须是3。我知道建议说“避免像‘谢谢’这样的注释”,但这是我的第一个SO问题,所以……谢谢你的建议,而且编号列表的额外提示很棒!(我很欣赏它不仅使使用4-空格缩进更加容易,而且使编号s 10-99的外观更加一致)