2017-10-27 8 views
0

現在のスクリプトで渡す文字列に従って別のスクリプトから関数を呼び出したいとします。例:私はEntryで異なる機能を持っていますが、どちらを実行するかを選択したいと思います。Pythonは変数の文字列値を使用して別の関数を呼び出します

import Entry 
def ma_exec(entry = 'longShort'): 
    if entry == 'longShort': 
     entryStrategy = Entry.longShort 
    entryStrategy(PositionTable, Signal) 

しかし、このようにして、Entryの各機能ごとに非常に多くを書き込む必要があります。

私はこのma_exec関数に渡すString値に応じてさまざまな関数を実行できますか? 私は上記の行が正しくないことを知っています、私の問題を解決する良い方法はありますか?

+2

関数に渡された文字列を関数ポインタに関連付けるために辞書を使用できますか?私。ディクショナリの1つのエントリは、キーとして 'longShort'を、値としてEntry.longShortを持ちます。たぶん、各文字列に対応する関数ポインタがあります。 –

答えて

0

これはおそらくPythonのeval()関数の良い例です。以下のコードを試してください:

eval("Entry." + entry + "(PositionTable, Signal)") 

私の知る限り、これはPythonのようなインタプリタ言語でのみ可能です。

関連する問題