private string GetPythonScriptName(PythonScriptType pythonScriptType) { switch (pythonScriptType) { case PythonScriptType.AddSaltNoise: return("AddSaltNoiseScript"); case PythonScriptType.AddGaussionNoise: return("AddGaussionNoiseScript"); } return(null); }
protected override object EvaluateScript(string script, PythonScriptType evalType) { switch (evalType) { case PythonScriptType.Expression: return(engine.CreateScriptSourceFromString(script, SourceCodeKind.Expression).Execute(scope)); case PythonScriptType.SingleStatement: return(engine.CreateScriptSourceFromString(script, SourceCodeKind.SingleStatement).Execute(scope)); case PythonScriptType.Statements: return(engine.CreateScriptSourceFromString(script, SourceCodeKind.Statements).Execute(scope)); } return(null); }
protected override object EvaluateScript(string script, PythonScriptType evalType) { using (Py.GIL()) { switch (evalType) { case PythonScriptType.Expression: var result = Scope.Eval(script); return(CPythonEvaluator.OutputMarshaler.Marshal(result)); default: Scope.Exec(script); return(null); } } }
private bool ExecutePythonScript(PythonScriptType pythonScriptType, Args[] args) { var pythonScriptName = GetPythonScriptName(pythonScriptType); var source = _engine.CreateScriptSourceFromFile(".\\script\\" + pythonScriptName + ".py"); //设置脚本文件 var scope = _engine.CreateScope(); //设置参数 foreach (var arg in args) { scope.SetVariable(arg.ArgName, arg.ArgValue); } try { source.Execute(scope); } catch (Exception exception) { AddLog("" + exception.Message); return(false); } //MessageBox.Show(scope.GetVariable("result").ToString()); return(bool.Parse(scope.GetVariable("result"))); }
protected abstract object EvaluateScript(string script, PythonScriptType type);