文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

调用Python脚本基本应用方式分别是什么

2023-06-17 16:26

关注

调用Python脚本基本应用方式分别是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

在编程人员需要选择一种合适的计算机语言进行程序开发时,他们脑海中往往会出现Python这一语言。它灵活易用的特点大大的提高了开发人员的效率。在这里我们将会为大家详细介绍一下调用Python脚本的相关方法。

之前简单了解过Python语言,但没有深入和系统的学习过,只是一直觉得它足够的灵活,而且不需要编译(因为Python是解释型语言),所以就一直想把它应用到CodeMaker中,达到一种灵活的、自定义的配置。

首先去下载IronPython类库(这里使用 IronPython-v2.6),我们借助IronPython类库,在.Net下运行调用Python脚本。

将IronPython以及相关的类库添加到项目引用里。

IronPython.dll   IronPython.Modules.dll   Microsoft.Dynamic.dll   Microsoft.Scripting.Core.dll   Microsoft.Scripting.Debugging.dll   Microsoft.Scripting.dll   Microsoft.Scripting.ExtensionAttribute.dll

只做了个小例子,不是很复杂,所以就直接贴调用Python脚本的代码了。

// 主方法  static void Main(string[] args)  {  // 创建脚本引擎  ScriptEngine engine = Python.CreateEngine();  // 创建一个脚本范围容器  ScriptScope scope = engine.CreateScope();  // 设置变量  engine.SetVariable(scope, "UserName", "cnBlogs");  // 执行Python脚本,并获取返回值  ScriptScope resultScope = engine.ExecuteFile("test.py", scope);  // 输出结果  Console.WriteLine(resultScope.GetVariable("Result"));  }  // Python脚本:  def GetType(name):  return "hello " + name;  Result = GetType(UserName);

调用Python脚本内容是很简单的,声明一个函数,参数为name,函数返回拼接name后的字符串,函数结束。然后调用该函数,参数为UserName,返回值为Result。

脚本中,UserName与主方法中的

engine.SetVariable(scope, "UserName", "cnBlogs");相对应。

Result与主方法中的

resultScope.GetVariable("Result")相对应,而无需再在脚本中声明这两个变量。

执行结果:

可以看到,输出的字符串是从Python脚本中返回的,就可以达到通过修改脚本实现执行结果的变化。

调用Python脚本在CodeMaker中的应用

使用方式:

我们以前也提到过已经提过该代码生成工具是采用标签的方式自定义模板,然后根据模板生成代码文件。所以为相应的Python脚本添加了一个script标签。

  1. < c:script path="test.py" variables="{userName:cnBlogs;password:123456}"
     result="Result" /> 

path:脚本文件路径(相对于EXE文件的路径)

variables:变量容器,原本打算使用类似于JSON格式的,但因为一些特殊符号会影响标签的解析,所以稍微改了一下分隔符,多个变量和值之间用;(分号)隔开。

result:脚本执行结果的返回变量,用于在代码中获取脚本返回值。

用途:在生成实体类的时候,对于类型转换,大部分可以直接使用Convert.ToXXX()这种形式,但对于Guid,却只能用new Guid()这种形式。

借助脚本,就可以在脚本中判断类型,如果是Guid的话,则返回new Guid();若是其他类型,则返回ConvertToXXX();

关于调用Python脚本基本应用方式分别是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网行业资讯频道了解更多相关知识。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯