Python - 如何不按字母顺序对pydoc输出进行排序

时间:2015-11-05 21:30:56

标签: python docstring pydoc

pydoc的输出根据字母顺序对结果(方法及其文档字符串)进行排序。这很好,但我希望保持最新状态。当我在我的模块中添加一个新方法时,我将它添加为第一个方法,因此每次添加新方法时它都会成为文件中的第一个方法。

我希望pydoc输出的显示顺序与文件中的方法相同。

这可能吗?

示例:

这是我的模块,pydoc_test.py:

#!/usr/bin/python
def test_my_code():
    """
    Docstring for test_my_code()
    :return:
    """
    pass


def add_my_code():
    """
    Docstring for add_my_code()
    :return:
    """
    pass

以下是" pydoc pydoc_test"的输出:

Help on module pydoc_test:

NAME
    pydoc_test

FILE
    /Users/myname/Documents/scripts/python_learning/pydoc_test.py

FUNCTIONS
    add_my_code()
        Docstring for add_my_code()
        :return:

    test_my_code()
        Docstring for test_my_code()
        :return:

pydoc显示" add_my_code"首先然后" test_my_code",但我想要与文件中的顺序相同。

1 个答案:

答案 0 :(得分:0)

我最近遇到了同样的问题,据我所知documentation,pydoc本身并没有给你这个选项。

我认为你唯一能做的就是抓住pydoc的输出:

import pydoc
import pydoc_test
docstrings = pydoc.render_doc(pydoc_test)

并解析它以获得单独的文档字符串。

然后阅读pydoc_test.py,通过搜索'def'获取函数名称,并根据它们在pydoc_test.py中出现的顺序重新排列pydoc docstrings。

非常难看,我同意。我想这是一个如此迂回的方式来获得你想要的东西,你可能会忘记所有pydoc并直接读取你的pydoc_test.py文件并解析它以获得docstrings。