This question概述了如何使用IronPython从C#调用python函数。
如果我们的python源看起来像:
def get_x():
return 1
基本方法是:
var script = @"
def get_x():
return 1";
var engine = Python.CreateEngine();
dynamic scope = engine.CreateScope();
engine.Execute(script, scope);
var x = scope.get_x();
Console.WriteLine("x is {0}", x);
但是如果我们的python源是:
def get_xyz():
return 1, 2, 3
处理多个返回值的C#语法是什么?
答案 0 :(得分:2)
IronPython运行时将get_xyz()
的结果作为PythonTuple提供,这意味着它可以用作IList
,ICollection
,IEnumerable<object>
... < / p>
由于C#的主要静态特性,没有类似于python解包元组的方法的语法结构。通过提供的接口和集合API,您可以接收值
var xyz = scope.get_xyz();
int x = xyz[0];
int y = xyz[1];
int z = xyz[2];