Powershell вызывает функцию ironpython с аргументами - PullRequest
0 голосов
/ 10 мая 2019

Используя приведенный ниже код powershell, как вызвать функцию ironpython с параметрами, куда должны записываться параметры?

[reflection.assembly]::LoadFrom("C:\Program Files\IronPython 2.7\IronPython.dll")
$py = [ironpython.hosting.python]::CreateEngine()
$pyv = $py.CreateScope()
$pyc = $py.CreateScriptSourceFromString(    
"
def fun(name):
    print("Welcome", name)
def fun2(x,y,z):
    res = x - y - z
    return res
");
$pyc.Execute($pyv)
$py.Operations.Invoke($pyv.GetVariable("fun"));
$py.Operations.Invoke($pyv.GetVariable("fun2"));

1 Ответ

0 голосов
/ 10 мая 2019

Вы можете передать их как второй параметр для Operations.Invoke, например:

[reflection.assembly]::LoadFrom("C:\Program Files\IronPython 2.7\IronPython.dll")
$py = [ironpython.hosting.python]::CreateEngine()
$pyv = $py.CreateScope()
$pyc = $py.CreateScriptSourceFromString(    
@"
def fun(name):
    print("Welcome", name)
def fun2(x,y,z):
    res = x - y - z
    return res
"@
);
$one = "yo"
$two = 1, 2, 3
$pyc.Execute($pyv)
$py.Operations.Invoke($pyv.GetVariable("fun"), $one);
$py.Operations.Invoke($pyv.GetVariable("fun2"), $two);
...