2014-04-01 42 views
3

我已經在argparse的幫助輸出中看到了顯示pydoc的問題,但是我沒有看到任何有關反轉的信息,對我而言,這似乎更有用。在pydoc中顯示argparse幫助

有沒有辦法讓pydoc自動呈現Python程序的提要和每項幫助描述?

回答

2

您可以使用format_help()方法訪問幫助字符串。你可以使用它來添加到你的腳本的文檔字符串。一個簡單的例子:

""" 
This is my script. 
""" 

import argparse 

def _make_parser(): 
    p = argparse.ArgumentParser() 
    p.add_argument("foo", help="Specify foo") 
    x = p.add_mutually_exclusive_group(required=True) 
    x.add_argument('--uid') 
    x.add_argument('--username') 
    return p 

_p = _make_parser() 

__doc__ += _p.format_help() 

if __name__ == '__main__': 
    args = _p.parse_args() 
+0

我想知道這樣的事情是否可行,但我似乎無法得到它的工作。首先,如果我在main()中定義了argparse的東西,我只是沒有在pydoc中看到任何額外的東西,並且如果我在主範圍中(在測試程序中)定義它,那麼當我運行'pydoc test_docs.py',因爲在運行pydoc時並不是所有必需的參數:'jazz%pydoc ./test_docs.py 用法:pydoc [-h] [--file FILE](--uid | - -username)... pydoc:error:其中一個參數--uid --username是必需的 問題在./test_docs.py - :2' – Will

+0

您必須確保解析器對象在導入時被定義,儘管您仍然可以在'main'函數中調用'parse_args'。 – chepner

+0

即使在全球範圍內的一切,我仍然得到上述錯誤。也就是說,它試圖解析參數,就好像程序正在被執行一樣,而不是僅僅爲它建立用法。 – Will