0

Linux コマンド プロンプトから Python 関数を実行したい。そのため、関数と、Linux 入力から実行される関数へのマッピングの辞書を定義します。だから、例えば。

def help():
    print(...)

def dostuff():
    do sth

functions ={
    'help': help()'
    ''dostuff' : dostuff()
    }

def parsecommand():
    return functions[sys.argv]

if __name__='__main__':
    parsecommand()    

Linux から関数を実行すると、[python filename.py] は、python が辞書内のすべての関数を実行し、辞書を作成するときにそれらを実行するという問題を解決します。どうすればこれを回避できますか? または、これを構造化するためのより良い方法は何でしょうか?

4

3 に答える 3

3

dict を次のように変更します。

functions = {
    'help': help,
    'dostuff' : dostuff
    }

これにより、次の方法で関数を呼び出すことができます。

functions[sys.argv[1]]()
于 2012-12-04T21:37:46.067 に答える
2

()辞書の関数名の次を削除します。

functions ={
  'help': help
  'dostuff' : dostuff
}

次のように関数を実行できます。

return functions[sys.argv[1]]()
于 2012-12-04T21:38:13.330 に答える
0
functions = {
    'help': help,
    'dostuff': dostuff
}

def parsecommand():
    return functions[sys.argv]()
于 2012-12-04T21:38:00.680 に答える