クラスの計算メソッド内で呼び出す必要のある関数を指定するjsonファイルがあります。python:設定ファイルで指定された関数のセットを呼び出す
このようなJSONファイルを見て:
{"function_definition": ["function_1","function_2","function_3"]}
が、私は次のように私のクラスの__init__
方法でこのファイルをお読みください。
def __init__(self,filename):
with open(filename) as f:
variables = json.load(f)
for key, value in variables.items():
setattr(self, key, value)
は今、私はcompute
メソッド内でこれらの関数を呼び出す必要があります。 私はこのように実行しようとしました:
def function_1(self,parameter):
function_1 = 1*parameter
return function_1
def function_2(self,parameter):
function_2 = 2*parameter
return function_2
def function_3(self,parameter):
function_3 = 3*parameter
return function_3
def compute(self,parameter):
output_function= {}
for index_function in range(0,len(self.function_definition)):
output_function[self.function_definition[index_feature]] =
self.features_to_compute[index_feature](parameter)
が、私は得る:
TypeError: 'unicode' object is not callable
文字列として私のconfファイルで指定された関数を呼び出すための正しい方法は何ですか?
'self.features_to_computeは[index_feature]'関数自体を返された(そしてそれがJSONファイルであるとして、それはそれは、関数の名前を返していません。)場合であっても、機能しています*定義*? – DeepSpace
ここでは設計上の問題は解決していますが、関数はどこに定義されていますか?同じモジュールですか?別のモジュールですか?後者の場合、モジュールはすでにインポートされていますか? – timgeb
@timegeb、私は私の質問を編集しました...関数は同じクラスのメソッドとして定義されています... – gabboshow