2012-03-20 178 views
0

我想動態分配從.NET的詞典例如, 未來類似這樣的參數值賦給命名參數的Python:IronPython的:動態地從.NET的字典

def Evaluator(IEvaluator): 
    def Execute(self, parameters): 
     a = parameters['a'] 
     b = parameters['b'] 
     c = parameters['c'] 
     d = parameters['d'] 
     e = parameters['e'] 
     return self.Sum(a, b, c, d, e) 

    def Sum(self, a, b, c, d, e): 
     return a + b + c + d + e 

我想找到一種方法來編程分配從字典中的變量值,東西 這樣的:

def Evaluator(IEvaluator): 
    def Execute(self, parameters): 
     return self.Sum(SetParametersByName(parameters)) 

    def Sum(Self, a, b, c, d, e): 
     return a + b + c + d + e 

我知道這不太可能完全按照我寫的,但你的想法。

非常感謝,

埃斯特萬。

回答

1

這應該工作:

def Execute(self, parameters): 
    return self.Sum(**parameters) 

如果沒有,你就必須在.NET Dictionary轉換爲一個Python dict第一(讓我知道,這樣我就可以提交錯誤):

def Execute(self, parameters): 
    return self.Sum(**dict(parameters)) 

此功能通常被稱爲'kwargs',我不認爲它有一個正式名稱。

+0

它的工作!謝謝! – user1275011 2012-03-21 14:27:21

1
def Execute(self, parameters): 
    return self.Sum(**parameters) 

將自動轉換.NET Dictionary實例爲** Python字典

非常感謝你。