好的,所以我已经阅读了PEP 8和PEP 257,并且我已经为函数和类编写了很多文档字符串,但是我有点不确定模块文档字符串中应该包含什么。我想,至少,它应该记录模块导出的函数和类,但我也看到了一些列出作者姓名、版权信息等的模块。有没有人有一个好的 python 文档字符串应该如何的例子结构化?
想想有人help(yourmodule)在交互式口译员的提示下做什么——他们 想 知道什么?(其他提取和显示信息的方法在信息量上大致相当于help)。所以如果你有x.py:
help(yourmodule)
help
x.py
"""This module does blah blah.""" class Blah(object): """This class does blah blah."""
然后:
>>> import x; help(x)
显示:
Help on module x: NAME x - This module does blah blah. FILE /tmp/x.py CLASSES __builtin__.object Blah class Blah(__builtin__.object) | This class does blah blah. | | Data and other attributes defined here: | | __dict__ = <dictproxy object> | dictionary for instance variables (if defined) | | __weakref__ = <attribute '__weakref__' of 'Blah' objects> | list of weak references to the object (if defined)
如您所见,这些组件的文档字符串中已经包含了关于类(以及函数,虽然我没有在这里展示)的详细信息;模块自己的文档字符串应该非常概括地描述它们(如果有的话),而是专注于模块作为一个整体可以为您做什么的简明总结,最好是一些经过文档测试的示例(就像理想情况下函数和类应该在他们的文档字符串)。
我看不到诸如作者姓名和版权/许可证之类的元数据如何帮助模块的用户——它可以在评论中出现,因为它可以帮助考虑是否重用或修改模块的人。