Python插件入门第1篇:Python插件入门讲解

随着近几年Python热度不断提升,应用场景越来越多样化,这个开发语言备受青睐,Python的学习门槛相对较低,这让很多本不是学计算机出身的有志之士对Python产生了浓厚的兴趣。金蝶云星空强大的架构和开发平台,支持用Python开发,虽然说不上是最好的开发方式,但是也让金蝶云星空的开发多了一个开发思路,也进一步提高了金蝶云星空平台的开放性,C#插件开发虽然也比较方便灵活,但是这个传统的开发方式让许多金蝶云星空圈里面的非技术出身小伙伴对系统二开望而却步,强大的BOS平台和IronPython解释器引擎为系统二开带来了新的方向。

比较遗憾的时候,官方没有太多关于Python插件开发教程和学习资料,让许多想学习Python插件开发的小伙伴也只能做一些少量的感受和尝试,很难进一步掌握和自主应用。

小弟不才,也是凭着对Python脚本插件的好奇心和兴趣,逐步研究和使用Python脚本开发,虽然没有太大的成就,但是也小有心得,抱着技术交流与自我提升的心态,准备结合自己的心得和总结,规划一系列的Python插件入门讲解供大家参考和指正。

Python语言,是一种面向对象、直译式计算机程序设计语言,Python语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写。

Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。

Python本身被设计为可扩充的。并非所有的特性和功能都集成到语言核心。Python提供了丰富的API和工具,以便程序员能够轻松地使用C语言、C++、Cython来编写扩充模块。Python编译器本身也可以被集成到其它需要脚本语言的程序内。因此,很多人还把Python作为一种“胶水语言”(gluelanguage)使用。使用Python将其他语言编写的程序进行集成和封装。

作用:运行文件(运行代码)

Python解释器的作用通俗理解,就是起到一个翻译的作用,让我们程序员所编写的代码计算机能读懂然后执行代码。

Python解释器分类

1.CPythonCPython是使用最广且被的Python解释器。当我们从Python官方网站下载并安装好Python2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。2.IPythonIPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。CPython用>>>作为提示符,而IPython用In[序号]:作为提示符。2.PyPyPyPy是另一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释,这里可以去了解一下解释和编译的区别),所以可以显著提高Python代码的执行速度。绝大部分Python代码都可以在PyPy下运行,但是PyPy和CPython有一些是不同的,这就导致相同的Python代码在两种解释器下执行可能会有不同的结果。如果你的代码要放到PyPy下执行,就需要了解PyPy和CPython的不同点。3.JPythonJPython是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码执行。4.IronPython

IronPython和JPython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

对于Python解释器,大家可以去查资料对Python语言的运行原理做一个了解,我这里不过多介绍。

言归正传,对Python的介绍就到这里,虽然CPython是使用最广且被的Python解释器,但是我们要学习的是金蝶云星空Python插件开发,这里用到的是IronPython,所以我们学习的并不是大家日常所了解的Python,而是Python插件开发。语法结构和Python是一样的,但是更多的开发思想还是和.NET更接近,API库用得更多也是金蝶云星空插件API。

Python插件可以使用Python基础语法调用.NET的库来完成开发,这也是能用Python开发插件的基础。

理论上讲,C#能实现的插件开发,用Python都能实现,但是个人目前看来,Python能实现90%的C#插件开发,有一些C#语言特有的运行机制不能用Python代替,或者需要变通实现。

Python不能实现、必须用C#实现的:服务端接口开发、执行计划定时任务开发、继承重写标准插件、其他C#特殊用法...

大部分情况下,Python和C#都能做,使用的时候也要根据具体情况理智选择,也不能为了用Python而用Python!

简单剖析,对比一下.NET与Python做开发的情况:

金蝶云星空系统以及BOS平台:

编程基础:

(非常重要)

---------------------------------------好了,序言就写到这里---------------------------------------------------------------

PS:为了更好的持续学习,借此机会新建交流群:【550273071】,欢迎加入,大家一起来学习Python插件开发!

THE END
1.商业网站设计的最佳实践与创新趋势探讨与案例分析搜索引擎商业网站设计是一项复杂而又富有挑战性的任务。通过关注用户体验、SEO优化、色彩与品牌一致性、创新技术的应用等方面,企业可以打造出一个既美观又实用的网站。成功的案例分析为我们提供了宝贵的经验,未来,随着技术的不断发展,商业网站设计将继续演变,企业需要保持敏锐的洞察力,及时调整策略,以适应不断变化的市场需求。https://www.163.com/dy/article/JJMQPN7D05569BV4.html
2.ASP.NETCore适用于.NET的开源Web框架使用C#、OpenAI 和 Azure 构建智能应用 什么是 ASP.NET Core? .NET 是一个开发人员平台,由工具、编程语言、库组成,用于构建许多不同类型的应用程序。 ASP.NET Core 通过专门用于生成 web 应用的工具和库扩展了.NET 开发人员平台。 更深入发掘: 什么是 ASP.NET Core? https://asp.net/
3.毕业设计报告15篇毕业设计报告15篇 随着社会不断地进步,越来越多的事务都会使用到报告,写报告的时候要注意内容的完整。你所见过的报告是什么样的呢?以下是小编为大家收集的毕业设计报告,供大家参考借鉴,希望可以帮助到有需要的朋友。 毕业设计报告1 学院: 专业: 班级: https://www.fwsir.com/fanwen/html/fanwen_20230216191319_2396776.html
4.计算机网络基本知识点(一)–喜文BLOGICMP 是什么协议?处于哪一层? ICMP协议属于网络层协议。ICMP协议向数据通讯中的源主机报告错误,可以实现故障隔离和故障恢复,其在网络中的主要作用有主机探测、路由维护、路由选择、流量控制等。 什么是程序局部性,为什么会有程序的空间局部性? 程序局部性是指程序在运行时呈现出局部性规律,在-段时间间隔内,程序的执http://www.xiwenblog.com/archives/3043
5.计算机职业规划范文(通用10篇)比较数据库管理而言我更喜爱编程,在大学期间学习几种语言,但对C#情有独钟,并且用C#作了一些项目参加学院创新杯获得二等奖,最重要的是我太爱编程啦。 3.程序员 熟悉各种程序语言,有很好的逻辑IQ:121,喜欢编程。 4.网站设计师 我个人爱好网页设计,Photoshop。 https://www.yjbys.com/jiuyezhidao/news/2009/1124/89435.html
6.网站模板2. 网站模板的优势 节省时间和成本:使用模板可以大幅减少设计和开发的时间,避免从零开始的高昂成本。 专业设计:大多数模板由专业设计师精心制作,确保了网站的视觉吸引力和用户体验。 易于定制:虽然模板是预设的,但大多数都提供了足够的自定义选项,允许用户根据自身需求调整布局和内容。 https://www.bilibili.com/read/mobile?id=35999721
7..net面试题(精选60题).net面试题AJAX最重要的问题是无法跨域请求(www.rupeng.com →so.rupeng.com),也就是无法在页面中向和当前域名不同的页面发送请求,可以使用在当前页面所在的域的服务端做代理页面的方式解决。 24、开放式问题:你经常访问的技术类的网站是什么? 博客园和CSDN 25、你对.net的GC的理解 GC是.Net的垃圾收集器,可以进行内存https://download.csdn.net/blog/column/12075603/127580516
8.B站上有哪些学习资源?我们都知道B站是一个学习网站(确信),之前央视也曾经支持过B站。B站上面的确有不少学习资源,一些课程真的能够称得上是精品。 所以小派在这里整理了一部分B站的课程资源,这里的内容选取的都是长视频,每一视频资源的时长都超过了30分钟。 小派之前说减少推送,提高推送质量其实也是为了能够给自己一些整理资料的时间,因为之https://www.douban.com/note/770877638/
9.掌握C#中的代理设计模式(ProxyDesignPattern)在本文中,我将通过示例讨论 C# 中的代理设计模式(Proxy Design Pattern)。 代理设计模式属于结构设计模式的范畴。 作为本文的一部分,我们将讨论以下几点。 什么是代理设计模式? 根据Gang of four 的定义,代理设计模式为另一个对象提供了一个代理(代表其他行动人)或占位符来控制对它的访问。 代理是指“代替”或“https://www.51cto.com/article/744738.html
10.C#实现23种常见的设计模式的示例详解C#教程组合模式(Composite pattern)是一种结构型设计模式,它可以使你将对象组合成树形结构,并且能像使用独立对象一样使用它们。这种模式的主要目的是使单个对象和组合对象具有一致性。 以下是在C#中实现组合模式的一个简单示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26https://www.jb51.net/program/287483cel.htm
11.126网易免费邮网易126免费邮箱–你的专业电子邮局,超过20年的邮箱运营经验,系统快速稳定安全,支持超大附件和网盘服务。网易邮箱官方App“邮箱大师”帮您高效处理邮件,支持所有邮箱,并可在手机、Windows和Mac上多端协同使用。https://126.com/
12.网站设计开发必备!8个颜色选择器让你事半功倍!网站设计、开发必备!8个颜色选择器让你事半功倍! 大家好,我是「前端实验室」爱分享的了不起~ 最近在开发中碰到关于颜色拾取器的需求,正好搜索了一些不错的JavaScript颜色选择器插件。这里把自己整理的内容分享给大家。 颜色选择器 1. ExColor ExColor是一个类似Photoshop样式的jQuery颜色拾取插件,其定制性非常高,https://cloud.tencent.com/developer/article/2310990
13.Ja.Net设计今日ja新的永久入口网站设计教程Ja.Net设计_今日ja 新的永久入口网站设计教程 摘要:Ja.Net设计,今日ja 新的永久入口网站设计教程,新片场素材小编方仪婷Ja.Net设计,今日ja 新的永久入口网站设计教程相关内容整理,如果您对Ja.Net设计,今日ja 新的永久入口网站设计教程感兴趣欢迎访问免费阅读。https://edu.xinpianchang.com/article/baike-303244.html
14.深入浅出剖析“自主”操作系统理论上讲,浏览器可以做很多事情,甚至可以替代 PC 机上的通用操作系统。但是,最新的浏览器技术(HTML5/CSS3等),还存在一些技术上的问题。主要的问题有如下两个: 浏览器主要采用的 JavaScript 编程语言,本质上是一种难于管理(源代码保护、无法进行有效的软件架构设计、难于调试等等)的编程语言,同时内存消耗巨大,性能http://kechuang.org/t/84062
15.了解SharePoint2010开发中的关键设计决定MicrosoftLearn如果您认为应该这样做,则不能使用应用程序页面,因为它们不支持 Web 部件。而是必须设计一个或多个满足 Web 部件页面要求的网站页面模板。创建网站页面模板后,可以将它添加到 SharePoint 解决方案的模块中,以便在功能激活期间创建新网站页面实例。最后一步是使用 Web 部件实例预先填充网站页面。为此,您可以在 File 元素https://technet.microsoft.com/zh-cn/magazine/gg552613(office.14).aspx
16.GitHubC#设计模式入门实战教程 .NET应用程序体系结构文档 ?♂?一文带你了解.NET能做什么? Java开发者快速上手.NET指南 C#数据结构与算法实战入门指南 C#/.NET/.NET Core自学入门指南 2024年ASP.NET Core开发者学习指南 值得推荐的.NET/.NET Core ORM框架汇总 .NET常见的几种https://github.com/YSGStudyHards/DotNetGuide