Pythonのargparseモジュールは、コマンドラインインターフェースの作成を容易にします。このモジュールは、ユーザーフレンドリーなコマンドラインインターフェースを作成するためのもので、プログラムが必要とする引数を定義し、argparseがそれらをsys.argvから解析する方法を決定します。
argparseモジュールには、カスタムアクションを作成するための機能があります。カスタムアクションを作成する推奨される方法は、Actionを拡張し、__call__メソッドをオーバーライドし、必要に応じて__init__およびformat_usageメソッドをオーバーライドすることです。
以下に、カスタムアクションの一例を示します。
class FooAction(argparse.Action):
def __call__(self, parser, namespace, values, option_string=None):
# ここにカスタムアクションを記述します
また、カスタムアクションに追加の引数を渡す方法もあります。以下にその一例を示します。
def make_action(additional_arg):
class customAction(argparse.Action):
def __call__(self, parser, args, values, option_string=None):
print(additional_arg)
setattr(args, self.dest, values)
return customAction
parser.add_argument('-e', '--example', action=make_action('your arg'))
このように、argparseモジュールを使用すると、コマンドラインインターフェースの作成が容易になり、さまざまなカスタムアクションを作成することが可能になります。