簡體   English   中英

Python-如何不按字母順序對pydoc輸出進行排序

[英]Python - How not to sort pydoc output in alphabetic order

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

最近,我遇到了同樣的問題,據我從文檔中得知,pydoc本身並沒有為您提供此選項。

我認為您唯一可以做的就是捕獲pydoc的輸出:

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

並解析它以獲得單獨的文檔字符串。

然后閱讀pydoc_test.py,通過搜索'def'獲得函數名稱,並根據它們在pydoc_test.py中的出現順序重新排列pydoc docstring。

我非常難看。 我猜想這是一種獲取所需內容的round回方式,以至於您可能完全忘記了pydoc,而直接直接讀取pydoc_test.py文件並對其進行解析以獲取文檔字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM