IronPython:从.net的Dictionary动态分配python命名参数

时间:2012-03-20 16:03:59

标签: ironpython introspection named-parameters

我想动态分配来自.net的Dictionary实例的参数值, 像这样:

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

我知道这可能不像我写的那样可能,但你明白了。

非常感谢,

埃斯特。

2 个答案:

答案 0 :(得分:1)

这应该有效:

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

如果没有,您首先必须将.NET Dictionary转换为Python dict(并告诉我,所以我可以提交错误):

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

此功能通常被称为“kwargs”,我不相信它有正式名称。

答案 1 :(得分:1)

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

会自动将.net Dictionary实例转换为** python词典

非常感谢。