gpt4 book ai didi

c# - 通过 IronPython 在 C# 中评估三角函数

转载 作者:行者123 更新时间:2023-11-28 16:47:00 25 4
gpt4 key购买 nike

我尝试使用来自 Iron-Python 二进制文件的 Python 引擎评估一些流体力学相关的表达式。我已经达到了以下代码:

ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromString("import math", SourceCodeKind.AutoDetect);
source.Execute();
source = engine.CreateScriptSourceFromString("2*sin (2)", SourceCodeKind.AutoDetect);
button1.Text = source.Execute<float>().ToString();

每当我尝试运行时,都会发生以下错误:Global name 'sin' not defined。我也试过 Math.sin() 但没有成功。有什么想法吗?

最佳答案

如果你想让所有的数学函数都可以在全局范围内访问(这可能对你有用,因为你的表达式本质上是数学的)。

您还应该创建一个 ScriptScope 来存储全局状态,这样您就可以执行多个语句:

ScriptScope scope = engine.CreateScope();

ScriptSource source = engine.CreateScriptSourceFromString("from math import *", SourceCodeKind.AutoDetect);
source.Execute(scope);

source = engine.CreateScriptSourceFromString("2*sin (2)", SourceCodeKind.AutoDetect);
button1.Text = source.Execute<float>(scope).ToString();

您甚至可以从 C# 将对象放入范围:

scope.SetVariable("x", 0.577);

关于c# - 通过 IronPython 在 C# 中评估三角函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12900399/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com