add_subparsers と set_defaults を組合せて、実装をスッキリさせる
#argparse リファクタリングtips #add_subparsers #set_defaults
https://docs.python.org/ja/3/library/argparse.html#argparse.ArgumentParser.add_subparsers
サンプルコードがある(必見)
サブコマンドを扱う1つの便利な方法は add_subparsers() メソッドと set_defaults() を組み合わせて、各サブパーサーにどの Python 関数を実行するかを教えることです
parser_foo.set_defaults(func=foo)
fooは関数で引数はargs1つだけ
argparseのNamespaceオブジェクトオブジェクトを受け取る関数!
こうすると、parse_args() が引数の解析が終わってから適切な関数を呼び出すようになります。
args.func(args)の呼び出しだけになるのでエントリポイントがスッキリする!(ifで分岐不要)
このように関数をアクションに関連付けるのは一般的にサブパーサーごとに異なるアクションを扱うもっとも簡単な方法です。