从C#代码使用python.net调用具有命名参数的python函数
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从C#代码使用python.net调用具有命名参数的python函数,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1144字,纯文字阅读大概需要2分钟。
内容图文
我想从C#代码中调用python函数.为此,我使用Python for .NET调用函数,如以下代码行所示
using System;
using Python.Runtime;
public class Test{
public static void Main(){
using(Py.GIL()){
dynamic lb = Py.Import("lb");
dynamic result = lb.analyze("SomeValue");
Console.WriteLine(result);
}
}
}
python函数是这样的:
def analyze(source, printout = False, raw = True):
# removed for bravity
所以问题是,当我从C#代码中调用分析函数时,如何将“原始”设置为False.我尝试了以下方法,但是没有用.
1. dynamic result = lb.analyze("SomeSource", raw : false); // No result
2. dynamic result = lb.analyze("SomeSource", @"raw = False"); // No result
我知道这样做很容易:
dynamic result = lb.analyze("SomeSource", False, False);
但是,如果有六个或七个以上的命名参数,那么手动将其全部插入并更改我想要的参数将不是很好.例如,我正在使用的python库有12个具有默认值的命名参数,包括另外两个没有默认值的参数.
更新
我也尝试过:
3. dynamic result = lb.analyze("SomeSource", raw = false); // C# compilation error
解决方法:
要应用关键字参数,请使用:
lb.analyze(“ SomeSource”,Py.kw(“ raw”,false));
参见readme.
另一种方法是使用将recently添加到pythonnet的C#关键字参数语法:
lb.analyze(“ SomeSource”,raw:false);
内容总结
以上是互联网集市为您收集整理的从C#代码使用python.net调用具有命名参数的python函数全部内容,希望文章能够帮你解决从C#代码使用python.net调用具有命名参数的python函数所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。