这是C#,F#,IronPython和IronRuby集成的后续问题
为了使用Python的C/C++函数,SWIG是最简单的解决方案.反过来也可以使用Python C API,例如,如果我们有一个python函数,如下所示
def add(x,y):
return (x + 10*y)
我们可以在C中提出使用此python的包装器,如下所示.
double Add(double a, double b)
{
PyObject *X, *Y, *pValue, *pArgs;
double res;
pArgs = PyTuple_New(2);
X = Py_BuildValue("d", a);
Y = Py_BuildValue("d", b);
PyTuple_SetItem(pArgs, 0, X);
PyTuple_SetItem(pArgs, 1, Y);
pValue = PyEval_CallObject(pFunc, pArgs);
res = PyFloat_AsDouble(pValue);
Py_DECREF(X);
Py_DECREF(Y);
Py_DECREF(pArgs);
return res;
}
IronPython/C#甚至F#怎么样?
你说'现在用字符串写代码,但是从文件中读取',好的,读取文件.
来自F#的Python:
let s = File.ReadAllLines("foo.py")
let engine = Python.CreateEngine()
let scriptSource =
engine.CreateScriptSourceFromString(s, SourceCodeKind.Statements)
...
Run Code Online (Sandbox Code Playgroud)
来自Python的F#:
import clr
clr.AddReferenceToFile("SomeFsLib.dll")
Run Code Online (Sandbox Code Playgroud)
我刚从这个问题的链接中得到了这些.没有尝试过,但是,它很简单,我觉得它"有效".不知道你还有什么要求.
| 归档时间: |
|
| 查看次数: |
1592 次 |
| 最近记录: |