У меня один вопрос, у меня такой код
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>
Теперь я пытаюсь использовать этот код
dynamic SomeClass = scope.GetVariable("SomeClass");
dynamic something = SomeClass();
something.some(x,y);
Следует ли мне перебирать ScriptScope.GetItems()
коллекцию и искать PythonType
объектов?