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 |
此多行文档字符串在前面没有空行,并且在后面的空行是在结束引用之外。
来自
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后面有一个空行,因此用空行分隔下一个方法声明。