Python初心者でございます。
公式ドキュメントを読んだり、Google検索でいろいろ調べましたがどうしても詰まってしまいご質問させていただきました。
標準ライブラリのargparseモジュールの挙動に関してわからない部分があります。
下記は自分でテスト用に書いたものです。
Python
1#test_argparse.py 2 3import argparse 4 5 6#サブコマンドで呼び出したい関数を定義 7def hoge(args): 8 print("hoge") 9 10 11#メイン関数 12def main(): 13 #ArgumentParserオブジェクトを生成 14 parser = argparse.ArgumentParser() 15 #サブコマンドを実行するための特殊オブジェクトの生成 16 sub_parsers = parser.add_subparsers() 17 18 #add_parserでArgumentParserオブジェクトを返す 19 hoge_parser = sub_parsers.add_parser("hoge") 20 #ArgumentParserオブジェクトのset_defaultsメソッド 21 hoge_parser.set_defaults(func=hoge) 22 23 #parse_args()でArgumentParserオブジェクトを解析。Namespaceオブジェクトが返る。 24 args = parser.parse_args() 25 #ここの挙動がわかりません・・・ 26 args.func(args) 27 28if __name__ == "__main__": 29 main() 30
コマンドラインに"python test_argparse.py hoge"と入力すると関数hogeが呼ばれてhogeと返ってきます。公式ドキュメントを読みながら、どのようにコードが進行するか調べたのですが、最後の**args.func(args)の挙動がわかりません。。。最終的にこの部分はhoge()**となっているんだと思うんですが、どのように変化したのかわかりません。
初歩的な質問かと思いますが、お助けいただけると助かります。よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/05/02 06:35
2018/05/02 06:41
2018/05/02 06:43
2018/05/02 06:52