使用C#中的多个返回值调用Python函数

时间:2015-03-04 23:10:21

标签: c# ironpython

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#语法是什么?

1 个答案:

答案 0 :(得分:2)

IronPython运行时将get_xyz()的结果作为PythonTuple提供,这意味着它可以用作IListICollectionIEnumerable<object> ... < / p>

由于C#的主要静态特性,没有类似于python解包元组的方法的语法结构。通过提供的接口和集合API,您可以接收值

var xyz = scope.get_xyz();
int x = xyz[0];
int y = xyz[1];
int z = xyz[2];