gpt4 book ai didi

ironpython - (IronPython) 从 C# 执行 PythonFunction

转载 作者:行者123 更新时间:2023-12-04 01:05:48 25 4
gpt4 key购买 nike

情况是这样的...我希望能够将 python lambda 传递到 C# 方法中,在该方法中应该进行 lambda 的求值。当我传入 lambda 时,它会变成 PythonFunction 的实例。我被困在这里,因为我不知道如何执行这个 PythonFunction。我在此类上看到“调用”,但我不知道从哪里获取它所需的 CodeContext。

有人知道怎么做吗?

最佳答案

如果您不想(或不能)使用委托(delegate),则 ObjectOperations 类是更好的选择。它可以从 engine.ObjectOperations 访问(其中 engine 是您的 ScriptEngine 实例)。

if(engine.ObjectOperations.IsCallable(myfunction))
engine.ObjectOperations.Invoke(myfunction, args);

也就是说,强类型委托(delegate)(System.ActionSystem.Func,或您自己的委托(delegate)之一)是更好的选择。如果无法更改函数签名,您可以使用 engine.ObjectOperations.ConvertTo 获取委托(delegate)。

关于ironpython - (IronPython) 从 C# 执行 PythonFunction,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2022523/

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