2015-11-05 50 views
0

pydoc的輸出基於字母順序排序結果(方法及其文檔字符串)。這很好,但我想保持新的東西。當我在模塊中添加一個新方法時,我將它添加爲第一個方法,所以每次添加新方法時,它都會成爲文件中的第一個方法。Python - 如何不按字母順序對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」,但是我想要和文件中的順序一樣。

回答

0

我最近遇到了同樣的問題,據我所知,從documentation,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文件並解析它以獲得文檔字符串。

+0

可以是單調乏味:)。還必須用你自己的替換輸出文件中的html代碼,對吧? – gixxer

+0

我完全同意它很乏味,但我不確定是否有另一種方式...... :) – Monozygotic

+0

你是什麼意思在輸出文件中的HTML? – Monozygotic

相關問題