У меня один вопрос, у меня такой код
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
объекты?