推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

使用C++扩展Python功能的方法

更新时间:2019-12-24 15:06:45 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

人工智能技术发展、大数据广泛应用,使C++与Python混合后,能够实现更多功能,可缩短高性能语言使用中模型检测时间。将脚本存在问题更加方便的解决,使人们在生活或者工作中能够将任务顺利开展,为人类带来更多方便。


部分文件列表

文件名 大小
使用C++扩展Python功能的方法.pdf 2M

部分页面预览

(完整内容请下载后查看)
Vol.36  No.5  
May  2018  
第36卷 第05期  
20185
数字技术与应用  
Digital Technology &Application  
DOI:10.19695/j.cnki.cn12-1369.2018.05.80  
设计开发  
使用 C++ 扩展 Python 功能的方法  
李先觉  
(中国石油大学(华东),山东青岛 266580)  
摘要:人工智能技术发展数据广泛应用,使C++与Python混合后,能够实现更多功能,可缩短高性能语言使用中模型检测时间将  
脚本存在问题更加方便的解决,使人们在生活或者工作中能够将任务顺利开展,为人类带来更多方便。  
关键词:C++Python功能法  
中图分类号:TP312  
文献标识码:A  
文章编号:1007-9416(2018)05-0168-02  
在应用软件中常见功能需求相同现象,只有少数功能要求具有  
较大差异性,所以针对需求变化构建独立版本,会使未来工作量提  
用脚本语言编写程序虽然在一定程度上步入系统编程语言,  
但是将代码修改后,能够使配置运行更加方便,这也是系统语言所  
不具备的能力系统编程语言中能够将用户平台修改,提供二次  
开发平台合编程为一种新型编程语言,能够在不同领域广泛应  
用,将C++与Python语言功能融合,能够满足更多用户需求,因此值  
得实践研究。  
求,需要将python安装实现,在产品升级过程中不可实现二种方  
式则只需要提供动态数据库以及压缩包即可,程序部署较为简单,  
能够使产品更加方便升级。  
所以若想将C++将python功能拓展,实现混合编程系统可  
采取动态库导出函数方式直接使用,做到无缝衔接。  
2.1 python解释器  
将C++应用于python功能中,需要装设python解释器体步  
骤为:构建python运行环境,将python解释器功能初始化,对系统工  
作路径进行设置,将设定脚本导入其中,将参数输入实现数据转换,  
调用函数,对返回值进行检查,将所返回值进行转换,此解释器构建  
完毕。  
1 C++与Python混合语言编程方式  
1.1 python语言分析  
python语言为一种解释性互性态性语言脚本,在二十世  
纪末期衍生,经过多年发展后,已经成为世界范围内应用最广泛的  
跨平台语言脚本有免费开源移植性嵌入性等特点。  
1.2 免费开源  
Python为FLoss自由开发软件源码之一,人们可以随意发布此  
软件,将代码阅读做出相应的改动,使其一部分完全应用于软件  
们在使用python语言编写程序过程中需要考虑通过怎样  
方式将底层细节处理。  
2.2 python运行环境要求  
相对于不同版本python应用程序,不要不同python动态库,常  
用python版本中含有Release版本python动态库,而Debug版python  
动态库则需要自行设定python源码动态库排除,需要将所用  
python库压缩成为一个zip文件,备用此环节工作中可以采取  
py2exe软件打包,或者采取直接压缩目录完成。  
2.3 将python解释器初始化  
将pythonC语言中API函数Py Initial-ize可以将python解释  
器初始化完成。  
1.3 可移植性  
Python自身本质问题,能够使其在不同平台上构建软件,其中  
包括WindowsMACPocket PC等Python能够提供类的继承等  
属性,将异常情况做到有效处理,选择最佳支持方法。  
1.4 可嵌入性  
正是由于python具备的可嵌入性,才能融入C++程序中,使程  
序脚本功能更加强大希望使关键代码运行速度更加迅速,可以  
将部分程序采取C++编写,然后融入到python程序重新使用。  
2.4 构建系统工作路径  
将python中C语言API函数PyRun-SimpleString调用后,将系  
统路径设定,为后续脚本运行做好基础。  
2.5 将自定义脚本导入  
将python的C语言API函数PyImport-ImportModule应用与自  
定义python脚本中,其中存在所有使用代码。  
2.6 将参数数据转换  
将上述调用的pythonC语言API函数Py-Build Value C++  
数据输入参数转化为python能够接受的参数环节也是整个环节  
中工作量最大的部分,也是环节中最为重要的部分,贯穿于整个环  
节,对最终效果能够产生影响。  
2 C++扩展Python功能的方法  
拓展以及嵌入能够使C++与python成为一个新的集合体  
方式需要将C++系统语言将python模块拓展,并在python中将这些  
模块功能利用入则是需要将python解释器融入于应用程序,使  
程序能够更好将python语言脚本解释展以及嵌入需利用python  
中C语言应用程序作为接口C与python间交互方式为数据格式转  
换方式。  
2.7 函数应用  
将python中C语言API函数pyObject CallOnject应用于自定义  
脚本中,并将控制权交付于python解释器中,等到python脚本函数  
工作结束后返回pyObject CallOnject函数返回值做出检测,根  
据预先设定,将返回值检测,对结果进行处理。  
2.7.1 返回值数据转换  
若系统为C++开发主系统,一般会采取两种方式命令python脚  
以通过系统命令调用以及嵌入解释器直接调用方式一种  
方式将参数传递只可采取命令方式,为字符串方式,功能具有局限  
二种方式将python内置高级数据系统,可以将不同复杂程序  
传输且第一种方式在系统运行过程中对python解释器有较高要  
根据返回值将结果转换为++数据类型据实际编码将任务  
执行一次其他步骤中将应用程序调用并在python脚本执行,后  
收稿日期:2018-03-22  
作者简介:李先觉(1998 —),男,汉族,江苏涟水人,中国石油大学(华东)化工院本科在读,研究方向:环保设备工程。  
168  
2018年第 05 期  
李先觉:使用 C++ 扩展 Python 功能的方法  
续操作需要判断py-ISInitiazed是否实现初始化,防止出现重复初  
他步骤需要在调用嵌入式python脚本执行。  
2.7.2 数据转换  
根据上述方式,C++与python混合编程工作核心为实现数据在  
C++以及python环境中能够良好传递C++语言类型为整型  
型以及字符串型,C++中结构体数据类型涉及字符对其问题,若直  
接转换到python中并不方便处理,所以采取方式一般是转化为py-  
thon词典数据然后再处理。  
对象借用过程中借用方不能随意调动py DECREF用方式能够  
不需注意py DECREF何时被调动,也不用担心内存泄露问题,但是  
缺点较为明显,在一些特殊情形下,若拥有者调动py DECREF后使  
用此对象,便会出现野指针问题,所以在python的C语言API中,对象  
引用函数在传输过程中,拥有权不会调换,具有较高安全性。  
3 结语  
将C++拓展python功能,能够实现混合式开发,将产品更加方  
便的审计,并且不依赖python环境,并且脚本具有语言高效灵活特  
点,可以将程序功能完善Python作为一种能力较强语言脚本,开发  
较为方便,所以在运行速度较慢时,将C++程序语言补充,能够使系  
统更具灵活性。  
将C++数据类型转换为python数据类型后,采取调用python  
中C语言API函数py-BuildValue方式将程序实现混合编写规情  
况下将python数据类型转化为C++类型后,能够使嵌入式python应  
用,在调用python脚本时返回于返回值类型为pyObject指针类  
型,所以需判断py-Check函数类型,结果检验后若无问题可以做函  
数转换。  
参考文献  
[1]陈婕.基于 C++ 和 MatLab 混合编程的 GM(1,1)模型实现与应用  
[J].电脑知识与技术,2017,13(33):124-126.  
[2]杨卫.面向深度学习扩展算法的编译优化方法[D].吉林大学,  
2017.  
在脚本语言混合过程中需要注意计数问题于py-thon垃圾  
收集根据对象引用计数实现,所以对象不能增加或减少计数,那么  
便会出现内存泄露问题,最终致使系统崩溃。  
在python的C语言API中会提供两个引用加减的计数,在引用计  
数为0时自动将内存释放此过程中一般会采取拥有或者借用方  
式,对象拥有者不需要使用此对象时,需实现调用py DECREF  
[3]陶诚,陆从珍.基于C++和Python混合编程的WORD文档操作方法  
[J].信息化研究,2014,40(05):58-63.  
The Method of Using C++ to Extend the Python Function  
LI Xian-jue  
(China University of Petroleum,Qingdao Shandong 266580)  
Abstract:The development of artificial intelligence technology and the wide application of large data make C++ and Python mixed, can achieve  
more functions, and can shorten the time of model detection in the use of high performance language. The problem of script is more convenient to solve,  
so that people can carry out tasks smoothly in life or work, and bring more convenience to mankind.  
Key words:C++; Python function; method  
······上接第167页  
外对外接口电路的设计还应考虑电路和外部设备的电源接入  
方式,并为发射机和外部信号之间提供隔离和保护,同时为外部电  
缆的瞬态电压或意外不适当的电压提供保护。  
对外接口电路是实现发射机自动监控不可或缺的重要组成部  
分,本文虽是以XAM-10A型中波广播发射机监测控制系统为对象  
介绍和解析其对外接口电路的设计方法,其他类型中波广播发射机  
尽管操作方式障种类和状态参量不尽相同,但其对外接口电路  
的设计方法和原理是基本一致的,因此在其他机型的对外接口电路  
设计中也可以进行参考。  
图5 G类电路设计图  
能和高频干扰的影响,灵活运用屏蔽波和接地等技术措施,减少  
传导干扰和辐射干扰,以保证两者之间信息交互的稳定性和可靠  
Design and Implementation of External Interface Circuit in the  
Monitoring and Control System of MW Transmitter  
ZHOU Xin-guo  
(582 Station of State Administration of Radio and Television,Beijing 100050)  
Abstract:The external interface circuit is a bridge and window for the transmitter to interact with the external software and hardware system  
equipment. It is an indispensable part of the automatic transmitter monitoring. In this paper, the design and implementation of the external interface circuit  
of the XAM-10A type medium wave broadcasting transmitter is discussed. The design and analysis of the key circuit of the external interface circuit is  
completed according to the status parameters involved in the transmitter and the type of the external input / output characteristic of the instruction  
information. The design method can be used as a reference for design of external interface circuit of the related model monitoring and control system.  
Key words:external interface circuit;input/output;external interlocking;monitoring & control  
169  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载