@[TOC](本文为【金蝶二开案例.Python插件.开发案例汇总】相互学习,共同进步,欢迎关注)
## 一、官方开发案例合集(c#写法):
[金蝶云星空BOS二次开发案例演示](https://wenku.my7c.com/article/94751030918525696?productLineId=1&isKnowledge=2&lang=zh-CN)
### 两者优缺点
1、Python更加方便、灵活,修改保存就可以生效,不需要重启iis,一个字舒服安逸,适用简单的逻辑,例如部分字段校验卡控等等
2、C#更新代码需要重新生成dll,重新编译组件,重启iis,相对麻烦(测试环境可以启用热更新,但是生产环境官方不建议启用热更新),复杂业务对接使用c#
## 二、python开发案例汇总
## 三、Web API各个接口操作汇总
## 四、python基本语法概念
|1|2|3|
|-|-|-|
|[基本语法](https://wenku.my7c.com/article/551722000993935616?productLineId=1&lang=zh-CN)|[分享Python脚本初学心得](https://wenku.my7c.com/article/34587?productLineId=1&lang=zh-CN)|[【金蝶二开案例.Python插件.debug调试成功】](https://wenku.my7c.com/article/603891728835388928?fromAction=POST_ARTICLE&productLineId=1&lang=zh-CN)|
## 五、python与c#转换、语法概念区别
星空的插件开发能用Python开发是用了IronPython解释器。IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。也就是说,Python可以使用Python基础语法调用.NET的库来完成开发,也是能用Python开发插件的基础。
理论上来C#能实现的插件开发,用Python都能实现,但是我目前看来,Python能实现90%的C#插件开发,有一些C#语言特有的运行机制不能用Python代替,或者需要变通实现。
Python不能实现、必须用C#实现的:服务端接口开发、执行计划定时任务开发、其他C#特殊用法...等等
C#不能实现,只能用Python实现的:主要是BOS配置层面的,在BOS中配置的一些复杂的计算公式,可以用Python表达式实现,但是不能用C#语言。例如,Lambda表达式、 if else 条件取值表达式...等
另外,Python调试比较.NET麻烦,对插件开发熟练的人才能真正提高开发效率,否则用Python反而增加开发难度。
当然,Python有一个最大的好处是,在BOS中配置即可生效,方便做代码运维调整,特别是对已经上线的功能。
大部分情况下,Python和C#都能做,使用的时候也要根据具体情况理智选择,不能为了用Python而用Python
可以看看周总这篇入门介绍,写得很详细:[【Python插件入门】第1篇:Python插件入门讲解](https://wenku.my7c.com/article/330000931540780032?productLineId=1&lang=zh-CN)
Pyhon系列教程:
python visual studio debug调试教程: [点击查看](https://wenku.my7c.com/article/603891728835388928?fromAction=POST_ARTICLE&productLineId=1&lang=zh-CN)
## 六、python常见错误集合
|方案|debug调试方案|
|-|-|
|二开案例.Python插件.抛异常|[点击查看](https://wenku.my7c.com/article/84697663127624960?productLineId=1&isKnowledge=2&lang=zh-CN)|
|[【金蝶二开案例.Python插件.debug调试成功】](https://wenku.my7c.com/article/603891728835388928?fromAction=POST_ARTICLE&productLineId=1&lang=zh-CN)|[点击查看](https://wenku.my7c.com/article/603891728835388928?fromAction=POST_ARTICLE&productLineId=1&lang=zh-CN)|
01、AttributeError:属性错误,特性引用和赋值失败时会引发属性错误;
02、NameError:试图访问的变量名不存在;
03、SyntaxError:语法错误,代码形式错误;
04、Exception:所有异常的基类,因为所有python异常类都是基类Exception的其中一员,异常都是从基类Exception继 承的,并且都在exceptions模块中定义;
05、ValueError:值错误,传给对象的参数类型不正确,像是给int()函数传入了字符串数据类型的参数;
06、IOError:一般常见于打开不存在文件时会引发IOError错误,也可以解理为输出输入错误;
07、KeyError:使用了映射中不存在的关键字(键)时引发的关键字错误;
08、IndexError:索引错误,使用的索引不存在,常索引超出序列范围,什么是索引;
09、TypeError:类型错误,内建操作或是函数应于在了错误类型的对象时会引发类型错误;
10、ZeroDivisonError:除数为0,在用除法操作时,第二个参数为0时引发了该错误。