目录
1 为什么需要多语言联合编程?
在大型工程项目中,经常会遇到多语言联合编程的情况,举个例子:
在一个远端控制系统中,前端Web使用html+css+js;后端采用python-flask作为服务端,底层控制采用C/C++
这是因为不同编程语言有各自的适用场景和语法特性,联合编程可使得各种语言发挥自己的特长。本文主要比较Python和C++,先列举各自特点如下:
对比项目
C++
Python
本质
编译型语言
解释型语言
编程难度
难以掌握
易于上手
语法特性
静态
动态
垃圾回收
不支持
支持
安装
易
难(需要专门打包)
数据类型
在编译时由关键字确定
在运行时由数值确定
函数
输入参数和返回值类型有限制
输入参数和返回值类型无限制
执行速度
快
慢
性能
高
低
国外有一个测试指出在相同复杂度算法中,C++约比Python快50倍左右。因此Python不适合用于底层算法的开发,应用在上层应用中作粘合剂或进行智能领域的研究比较占优;C/C++则适合用于底层控制算法编程。下面主要介绍Python调用C++,让C++和Python形成优势互补。
2 Python调用C++的主要方式
主要介绍三种C++/Python联合编程的方式:
2.1 SWIG
- 支持Python、Java、Ruby等语言调用C接口
- 文档全面,易于学习
- 绑定性能欠佳&#