3
我已經在argparse的幫助輸出中看到了顯示pydoc的問題,但是我沒有看到任何有關反轉的信息,對我而言,這似乎更有用。在pydoc中顯示argparse幫助
有沒有辦法讓pydoc自動呈現Python程序的提要和每項幫助描述?
我已經在argparse的幫助輸出中看到了顯示pydoc的問題,但是我沒有看到任何有關反轉的信息,對我而言,這似乎更有用。在pydoc中顯示argparse幫助
有沒有辦法讓pydoc自動呈現Python程序的提要和每項幫助描述?
您可以使用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()
我想知道這樣的事情是否可行,但我似乎無法得到它的工作。首先,如果我在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
您必須確保解析器對象在導入時被定義,儘管您仍然可以在'main'函數中調用'parse_args'。 – chepner
即使在全球範圍內的一切,我仍然得到上述錯誤。也就是說,它試圖解析參數,就好像程序正在被執行一樣,而不是僅僅爲它建立用法。 – Will