3
好吧...我試圖將一個我在C#中聲明的對象傳遞給一個帶有IronPython的Python文件。將一個C#類對象傳遞給一個Python文件
所以這是我在想什麼關:
C#類:
public class ParamObj
{
private string Obj_String;
private int Obj_Int;
public ParamObj(string lObjS, string lObjI)
{
Obj_String = lObjS;
Obj_Int = lObjI;
}
public string getString()
{
return Obj_String;
}
public int getInt()
{
return Obj_Int;
}
public setString(string lStr)
{
Obj_String = lStr;
}
public setInt(int lInt)
{
Obj_Int = lInt;
}
}
所以,我有我的課。現在我宣佈類在我的C#項目,我把它傳遞給蟒蛇文件:
ParamObj Test_Object = new ParamObj("Test Object from C#", 1337);
var ipy = Python.CreateRuntime();
dynamic Test = ipy.UseFile("Test.py");
Test_Object = Test.ObjectAsParam(Test_Object);
Console.WriteLine(Test_Object.getString(), Convert.ToString(Test_Object.getInt()));
現在我想在我的Pythoin文件中使用對象,並調用它的方法。 所以在我Test.py的代碼如下:
def ObjectAsParam(Obj):
print Obj.getString()
print str(Obj.getInt())
Obj.setString("Changed!")
Obj.setInt(1338)
return Obj
但我的編譯器說,Python腳本不知道方法 的getString(),getInt()等
所以有沒有辦法來管理呢?
感謝
也許你需要在某處做一些演員? – Davio
@Davio我該怎麼做?和哪裏? (在編程中我沒有那麼高級) – VanDeath
我不知道如何在Python中完成它,但其要點是Python需要知道傳入的對象是什麼類型以便能夠調用方法在上面。有沒有辦法動態調用這些方法? C#有反射,我不知道Python中是否有類似的東西。 – Davio