Ich habe eine JSON-Datei, wo ich einige Funktionen angeben, die innerhalb der Compute-Methode einer Klasse aufgerufen werden müssen.Python: Aufruf einer Reihe von Funktionen in einer Konfigurationsdatei angegeben
Die JSON-Datei sieht wie folgt aus:
{"function_definition": ["function_1","function_2","function_3"]}
las ich diese Datei im __init__
Methode meiner Klasse wie folgt:
def __init__(self,filename):
with open(filename) as f:
variables = json.load(f)
for key, value in variables.items():
setattr(self, key, value)
Jetzt muss ich diese Funktionen innerhalb des compute
Methode aufrufen . Ich habe versucht, wie dies zu tun:
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)
aber ich bekomme:
TypeError: 'unicode' object is not callable
Was ist der richtige Weg, um eine Funktion in meiner conf Datei als String angegeben anrufen?
Auch wenn 'self.features_to_compute [index_feature]' die Funktion zurück selbst (und es nicht den Namen der Funktion gibt, wie es in der JSON-Datei ist.), Wo Funktionen * definiert *? – DeepSpace
Lassen Sie das Designproblem hier beiseite, wo sind die Funktionen definiert? Im selben Modul? In einem anderen Modul? In letzterem Fall ist das Modul bereits importiert? – timgeb
@timegeb, Ich habe meine Frage bearbeitet ... die Funktionen sind als Methoden der gleichen Klasse definiert ... – gabboshow