は、私が尋ねると--help
を解釈するために選択した私たちは、いくつかの助けか。ここ
import argparse
import sys
def hide_args(arglist):
for action in arglist:
action.help=argparse.SUPPRESS
hidelist=[]
parser = argparse.ArgumentParser()
a1 = parser.add_argument('--foo',help='normal')
a2 = parser.add_argument('--bar',help='hidden')
hidelist.append(a2)
if '-h' in sys.argv[1:]:
hide_args(hidelist)
args = parser.parse_args()
を抑える必要があるかどうかを確認します長い助けのために;短くは-h
。代わりに別の--longhelp
引数を追加できました。短いヘルプ
1207:~/mypy$ python3 stack37303960.py -h
usage: stack37303960.py [-h] [--foo FOO]
optional arguments:
-h, --help show this help message and exit
--foo FOO normal
add_argument
ため
1207:~/mypy$ python3 stack37303960.py --help
usage: stack37303960.py [-h] [--foo FOO] [--bar BAR]
optional arguments:
-h, --help show this help message and exit
--foo FOO normal
--bar BAR hidden
は、それが作成さAction
オブジェクトへのポインタを返します。ここでは、選択したものをhidelist
に保存します。条件付きでそのリストを反復し、help
をに変更します。アクションの属性の多くは、最初の作成(インタラクティブセッションでの実験)後に変更できます。
パーサーは、アクションのリストも保持します。デフォルトのhelp
は、parser._actions
のリストの最初のものです。ヘルプの解析とフォーマットの両方にこのリストを使用します。
In [540]: parser._actions[0]
Out[540]: _HelpAction(option_strings=['-h', '--help'], dest='help', nargs=0, const=None, default='==SUPPRESS==', type=None, choices=None, help='show this help message and exit', metavar=None)
私はあなたが実際に文字列である 'argparse.SUPPRESS'を持つ属性のヘルプを上書きしていることから、それが可能だとは思わない:'「== SUPPRESSが==」 '。 'add_argument'の実装を見れば、' help == '== SUPPRESS ==' ' –
の場合、メソッド全体がスキップされることがわかります。これは話題にはなりません - この文脈でどのノブが意味するのか、私はコンピュータコードノブのためのグーグルと関連する何かを見ませんでした。 – PyNEwbie
これは単なるオプションの同義語です。 – chepner