2016-06-02 6 views
1

私はPythonのスイッチケースとして辞書/ get構造体を使用しています。confファイル内に関数ヘッドを定義する

しかし、私はconfファイルで定義されている別のキー値のペアで辞書を拡張したいと考えています。私は値として関数の頭が必要です。機能ヘッドは、特定のプラグインのために、スイッチの場合に実行されるべき機能の先頭でなければなりません。設定ファイルは次のようになります。

[aSection] 
pluginid='anotherid' 
functionHead: anotherfunction2 

辞書簡単なはずの拡張を、それはconfファイル内の値として機能ヘッドをマッピングすることは可能でしょうか?

答えて

1

次の例では、exec句を使用します。あなたのdictは次のようなものに拡張する必要があります:

switcher[config["aSection"]["anotherid"])] = func 

次に、あなたがこのような何かを見てFUNCを定義する必要があります。

#CONF 
#[aSection] 
#pluginid='anotherid' 
#functionHead: anotherfunction2 

#PYTHON 
#config is an instance of a config parser 
def func (param): 
    exec ("%s(param)" % config["aSection"]["functionHead"]) 

これは、以前に定義したanotherfunction2という関数を呼び出します。 funcを次のように呼び出します。

switcher[config["aSection"]["anotherid"])](param) 

+0

私はあなたの解決策を完全に理解していないことを正直に述べる必要がありますが、私の問題をどのように解決できるかをヒントにしてくれました。あなたのようにexecを使用する代わりに、私はevalを使用しました。 – Depa

関連する問題