2
我有一个问题,我有这样的代码IronPython的脚本从C#代码执行
this._engine = Python.CreateEngine();
ScriptSource source = this._engine.CreateScriptSourceFromString(script.SourceCode);
ScriptScope scope = this._engine.CreateScope();
ObjectOperations operations = this._engine.Operations;
source.Execute(scope);
,我试图从教程执行IronPython的代码:
from System.Collections import BitArray
ba = BitArray(5)
ba.Set(0, True) # call the Set method
print ba[0]
以便它能够正确执行,但我不明白,如果我有print ba[0]
为什么它不会输出这个值到控制台?顺便说一句,你可以建议一些关于使用IronPython进行应用程序脚本的优秀文章吗?
另一个问题是,如果我有一些Python类,我不知道这个类的名称,因为客户端可以手动定义它,是否有可能创建此类的实例?例如
class SomeClass(object):
def some(self, a, b):
return <something>
现在我想通过ScriptScope.GetItems()
集合使用此代码
dynamic SomeClass = scope.GetVariable("SomeClass");
dynamic something = SomeClass();
something.some(x,y);
我应该遍历和搜索PythonType
对象?
编辑,对不起:) – digEmAll 2010-09-29 10:39:46
好的,谢谢!我不太了解实例化,当我完全知道什么是类名时,它工作正常。但是,如果客户端使用一些自定义名称来定义自己的自定义类,该自定义名称实现了一些接口(例如,使用一个方法Do()),我想实例化此类并运行此Do()方法,但我无法使用'scope .GetVariable()',因为我不知道类名。 – 2010-09-29 10:46:37
好的,谢谢! :) – 2010-09-29 10:51:02