IronPython: динамически назначать именованные параметры python из словаря .net - PullRequest
0 голосов
/ 20 марта 2012

Я хочу динамически назначать значения параметров, поступающие из экземпляра словаря .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

Я знаю, что это не возможно в точности, как я написал, но вы поняли.

Большое спасибо,

Esteban.

Ответы [ 2 ]

1 голос
/ 21 марта 2012
def Execute(self, parameters):
    return self.Sum(**parameters)

автоматически преобразует экземпляр словаря .net в ** словарь Python

Большое спасибо.

1 голос
/ 20 марта 2012

Это должно работать:

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

Если нет, вам придется сначала преобразовать .NET Dictionary в Python dict (и дайте мне знать, чтобы я мог сообщить об ошибке):

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

Эта функция часто упоминается как 'kwargs', я не думаю, что она имеет официальное название.

...