Мне нужно передать список параметров, сохраненный в словаре, в функцию, реализованную классом ironPython.
Я подготовил минимальный пример, который воспроизводит ошибку:
// C# Side
var runtime = Python.CreateRuntime();
dynamic test = runtime.UseFile("test.py");
// Here the parameters dictionary is instantiated and filled
var parametersDictionary = new Dictionary<string, int>();
parametersDictionary.Add("first", 1);
// The Python 'x' instance is called passing parameter dictionary
var result = test.x.ReturnFirstParameter(parametersDictionary);
Теперькод Python:
# Python side
# Class 'Expression' definition
class Expression(object):
def ReturnFirstParameter(self, **parameters):
return parameters['first']
# Class 'Expression' instantiation
x = Expression()
Когда я запускаю программу, я получаю следующее исключение:
ReturnFirstParameter() takes exactly 1 argument (2 given)
Первый параметр 'self', но кажется, что игнорирование его получает 2параметры, «я» и словарь.
Я попытался изменить словарь для других параметров, и он работает хорошо.Проблема возникает только тогда, когда вы получаете ** параметр.
Я очень ценю вашу помощь!
Esteban.