0

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”,但我想要与文件中相同的顺序。

4

1 回答 1

1

我最近遇到了同样的问题,据我从文档中可以看出,pydoc 本身并没有给你这个选项。

我认为你唯一能做的就是捕捉 pydoc 的输出:

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

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

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

非常丑陋,我同意。我想这是一种获得你想要的东西的迂回方式,你可能会忘记 pydoc 并直接读取你的 pydoc_test.py 文件并解析它以获取文档字符串。

于 2016-01-12T00:56:28.053 回答