在Sphinx中,如何包含位于模块中但位于类和方法之外的文档字符串/注释

时间:2017-11-02 09:39:14

标签: python-2.7 documentation python-sphinx autodoc

我的包中有utils个模块。它由几个不需要实例化的misc独立方法组成。

我想在这个utils文件中放置一些通用注释/ docstring,例如:

import os
import json

"""
Miscellaneous methods that help in <<blah blah>>
Does not require explicit instantiation.

The following actions can be performed:
===============   ===============
Action            Method
===============   ===============
Get a             :meth:`methoda`
Get b             :meth:`methodb`
"""

def methoda(data):
    "Gets A ..."
    ...

def methodb(data):
    "Gets B ..."
    ...

如上所示,docstring有一个表,其中包含指向各个方法的链接。目前,我的index.rst部分包含utils

Utilities
============
.. automodule:: packagename.utils
   :members:

目前,我获得了文档中正确显示的各个方法的文档字符串,但没有获得模块的顶级文档字符串(在任何类或方法之外)。拥有狮身人面像的最佳方式包括以上内容?

一个选项可能是将顶级文档字符串移到此文件之外,例如移至index.rst等。但我不想这样做,并将其保留在源文件中。

1 个答案:

答案 0 :(得分:2)

感谢jonsharpe的评论,并引导我采取正确的方式。

为了将来其他人的参考,我基本上将文档字符串移动到文件的开头:

"""
Miscellaneous methods that help in <<blah blah>>
Does not require explicit instantiation.

The following actions can be performed:
===============   ===============
Action            Method
===============   ===============
Get a             :meth:`methoda`
Get b             :meth:`methodb`
"""

import os
import json

def methoda(data):
    "Gets A ..."
    ...

def methodb(data):
    "Gets B ..."
    ...

就是这样!一切正常。