0

我想动态分配来自.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

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

非常感谢你,

埃斯特班。

4

2 回答 2

1

这应该有效:

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

如果没有,您必须先将 .NET 转换Dictionary为 Python dict(并让我知道,以便我提交错误):

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

这个特性通常被称为“kwargs”,我不相信它有一个正式的名字。

于 2012-03-20T19:53:49.683 回答
1
def Execute(self, parameters):
    return self.Sum(**parameters)

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

非常感谢你。

于 2012-03-21T14:28:53.790 回答