有没有办法检索脚本编写器定义的全局变量而不实际执行脚本?例如,仅编译代码
答案 0 :(得分:1)
如果我理解正确,你基本上只想在执行某些操作之前执行脚本的一些初始部分。鉴于我操作范围变量而不是“全局”变量,我将做的是以下内容。
[Test]
public void TestPythonDymanicCall()
{
string customScript = @"
scriptScopeVar1 = 3
def executeSomething():
global scriptScopeVar1
scriptScopeVar1 = scriptScopeVar1 + 1
".unindent();
var engine = Python.CreateEngine();
var scope = engine.CreateScope();
engine.Execute(customScript, scope);
Assert.AreEqual(3, engine.Execute("scriptScopeVar1", scope));
engine.Execute("executeSomething()", scope);
Assert.AreEqual(4, engine.Execute("scriptScopeVar1", scope));
}