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