私はargparseを使用してユーザの引数を使って、プログラムで関数を実行しています。しかし、私はmain()で呼び出している他の汎用関数を実行することができません。実行して出力を表示せずにこれらの機能をスキップするだけです。どうすればいいですか、どこで間違っているのですか?Pythonのmainで定義されているargparseとは別の関数を実行します。
)関数は、(メインで実行する必要があります)私は機能mytop20と私は定型的なmain()関数を削除する場合は罰金実行されますが、私の目標は(run_in_mainしているユーザーの引数を使用して実行するlistappsをしたいのは、プログラムの下で言ってみましょうimport argparse
def my_top20_func():
print "Called my_top20_func"
def my_listapps_func():
print "Called my_listapps_func"
def run_in_main():
print "Called from main"
parser = argparse.ArgumentParser()
FUNCTION_MAP = {'top20' : my_top20_func,
'listapps' : my_listapps_func }
parser.add_argument('command', choices=FUNCTION_MAP.keys())
args = parser.parse_args()
func = FUNCTION_MAP[args.command]
func()
if __name__ == "__main__":
run_in_main()
私の使用例は非常によく似ているので、上記のコードをhereから取得しました。
:としてこのことを念頭に置いて、私はあなたのスクリプトを再編成したいです() 'は' print 'を実行します。メインで実行されている関数がいくつかあります。' – raphael
'FUNCTION_MAP'とは何ですか?それは 'funcs_dict'でしょうか?あなたは 'args'を作るものをやめましたか?あなたは 'run_in_main'にその部分を移動しようとしましたか? – hpaulj
@raphaelすでに述べたように、これは私の実際のプログラムのプロトタイプに過ぎません。私は私がすることができないmain()のrun_in_main()関数を実行したいだけです。それはずっとスキップします。 –