关于python:我在哪里可以找到PEP 257文档字符串约定的正确示例?

Where can I find proper examples of the PEP 257 Docstring Conventions?

PEP 257表示:

Insert a blank line before and after all docstrings (one-line or
multi-line) that document a class -- generally speaking, the class's
methods are separated from each other by a single blank line, and the
docstring needs to be offset from the first method by a blank line;
for symmetry, put a blank line between the class header and the
docstring.

但我似乎找不到任何实际实现这一点的代码。

我检查了随python 2.6提供的几个标准模块,甚至专门搜索提到guido名称的模块。但即使是Rietveld代码审查工具的代码也不符合要求(如http://code.google.com/p/rietveld/source/browse/upload.py):

1
2
3
4
5
6
7
8
class CondensedHelpFormatter(optparse.IndentedHelpFormatter):
  """Frees more horizontal space by removing indentation from group
      options and collapsing arguments between short and long, e.g.
      '-o ARG, --opt=ARG' to -o --opt ARG"""


   def format_heading(self, heading):
     return"%s:
"
% heading

此多行文档字符串在前面没有空行,并且在后面的空行是在结束引用之外。

来自/usr/lib64/python2.6/site.py的这个类在结束引号之前和之后没有空行,而是有一个空行。

1
2
3
4
5
6
7
class _Helper(object):
   """Define the built-in 'help'.
    This is a wrapper around pydoc.help (with a twist).

   """


    def __repr__(self):

是否有示例可用于演示PEP 257?

提前谢谢


不是直接的答案,但是如果你想遵守PEP257,你可以使用我写的工具:https://github.com/halst/pep257

我也很震惊地看到有多少代码(也在标准库中)甚至没有尝试遵守PEP257。

也许,大多数人认为他们的docstring风格是有道理的,我也认为pep257风格有些尴尬,但在使用了一段时间后,我爱上了它,并且认为这是写文档串最漂亮的方式。我总是在我能做到的每一个方面都遵循Pep257,并编写这个工具,以便更多的人能够看到他们如何改进自己的风格。

作为一个例子,我对pep8和pep8工具有一个有趣的体验:当我第一次读到pep8时,我喜欢它并认为我遵循它,但是当我在pep8上尝试我的代码时我震惊于我离Pep8有多远,以及在修复这些样式错误之后,我的代码看起来有多好。

我希望人们在PEP257方面也有类似的经验,从此以后开始愉快地跟随PEP257。


据我所见,您链接到的文档显示:

Insert a blank line after all docstrings (one-line or multi-line) that document a class -- generally speaking, the class's methods are separated from each other by a single blank line, and the docstring needs to be offset from the first method by a blank line.

(强调矿山)

因此,您给出的示例都是正确的,因为它们在docstring后面有一个空行,因此用空行分隔下一个方法声明。