我在C#中有一个相对较深的对象树需要从IronPython初始化.
我是python的新手,我正在努力进行数组的初始化.
举个例子 - 假设我在C#中有这些类
public class Class1
{
public string Foo {get;set;}
}
public class Class2
{
List<Class1> ClassOnes {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
我可以在Class2中初始化数组,如下所示:
var class2 = new Class2(
ClassOnes = new List<Class1>()
{
new Class1(Foo="bar")
});
Run Code Online (Sandbox Code Playgroud)
在IronPython中 - 我试过这个:
bar = Class2
bar.ClassOnes = Class1[Class1(Foo="bar")]
Run Code Online (Sandbox Code Playgroud)
但我总是得到这样的信息:
期望的数组[类型],得到Class1
有任何想法吗?
Cam*_*ron 15
你有几个问题在这里.首先,您要设置bar类对象Class2(类是Python中的第一类对象).
你打算创建一个像这样的实例(带括号):
bar = Class2()
Run Code Online (Sandbox Code Playgroud)
要List<T>在IronPython中创建,您可以:
from System.Collections.Generic import List
# Generic types in IronPython are supported with array-subscript syntax
bar.ClassOnes = List[Class1]()
bar.ClassOnes.Add(Class1())
Run Code Online (Sandbox Code Playgroud)
在Class2()上犯了一个错误 - 这就是我得到一个例子而不是发布实际代码!
为了它的价值 - 我能够用这样的实际实例初始化List:
from System.Collections.Generic import List
bar.ClassOnes = List[Class1]([Class1(Foo="bar")])
Run Code Online (Sandbox Code Playgroud)
非常感谢Cameron!