モジュールを使用してargparse
、特定の引数に対して複数のアクションを実行できますか?
具体的には、プログラムの動作を主な機能から、セット内のすべての可能性または特定の可能性に関する情報を提供するものに変更する-l
/--list
オプションを提供したいと思います。nargs='?'
通常、解析後に呼び出される関数を含む名前空間属性があります。-l
この属性を変更し、オプションでその引数を別の属性に保存するオプションが欲しいです。
これは可能ですか?
Action
独自のサブクラスを実装するだけです。これは基本的に次のようになります。
class ListAction(argparse.Action):
def __call__(parser, namespace, values, option_string=None):
setattr(namespace, 'list', values[0])
do_something_completely_different()
argparseのドキュメントに詳細があります。