2012-03-20 175 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字典

非常感谢你。