python,c++的语言特点及swig融合道路

        初衷:最初是写c语言的,后来加入python大军,python写起来是真的快,而且很舒服,但是效率真的是不敢恭维,于是将自己的python代码转换为c++,在这个过程中,有过很多的坑,自己也在学习继续前行,于是写下来,给自己做个纪念,也替他人趟下坑.

       博客的流程: 1 简述python语言和c++语言的特点,作为后续工作的出发点

                           2 python程序和c++程序相互转换的一些思路和注意点

                           3 swig作为接口的引入,python和c++粘合到一起,实现混合编程.

      目的:

              既要利用python简单来实现迅速的开发,又要利用c++的高效,代码执行速度快的优点,迭代优化开发出的代码.

     先说一下python吧,python 是一种面向对象的,解释性的高级语言.python最大的优点就是简单,简单,简单,重要的事情说三遍.

     1   python作为一种高级语言,所谓高级语言在我看来就是越来越符合人的思考方式.大家很清楚,程序肯定是要运行在计算机上,因此最终都会转换为机器码,机器能理解的语言.因此程序的一种发展之路就是从靠近机器的硬件结构,一步一步的走向靠近人的思维方式.因此越是高级语言,你用起来,思考起来就会感觉很流畅.python很明显就是一种高级语言,当你明白程序的三大结构,顺序,分支,循环之后,理解一下其中的list,dict之后,就可以很快上手了,顺着你的应用,你更深入的学习,你会喜欢上这种感觉.简单,方便,易于理解,是我接触的语言里最容易上手的.想起当年的汇编,那个寄存器让我一言难尽.

    2  python是一种解释性的语言,所谓解释性的语言,是相对于c/c++这种编译型的语言来说的,你写好python程序,源码就可以运行,在计算机的内部,python解释器吧源代码转换成字节码的中间形式,然后再翻译成机器码运行.当你深入了解一下c++的编译链接过程,以及其中的bug,你就知道,嘻嘻,Python好简单.

  3  python开源,有众多的库可以调用.当你使用python写程序的时候,很多功能强大的库供你使用,比如scikit-learn库,里面机器学习算法,你可以迅速的开发出你要的算法,来验证你的思路.

 4 python是面向对象的语言.面向对象是和面向过程相比较的.这里就简单的说一下吧,面向过程是一种将整个做事的流程,分成一个一个模块,当所有的模块完成之后,整个事件就完成了,我们平时很多的做事方式都是这样,比如说高考吧,首先你要报名,然后答题,接着阅卷,出成绩.面向对象,其核心就是将事物封装成一个一个对象,里面包含数据和函数.这样可以有效的实现对象的一种分离,对于构建大型程序有很大的帮助.当你完成对象的构建后,程序运行就是就是对象之间相互发消息,依靠消息来完成任务.

python缺点:python简单易用,为了符合人的思维做了很多的封装,因此整个的代码运行速度慢,很慢.尤其和c++这种编译型的语言相比.

   c++本来是在c的基础上扩展了面向对象功能而来的语言,能够完全对C语言兼容.

1 语言简洁,紧凑,代码的执行效率高,速度快.

c++既可以进行面向过程的编程,也可以进行面向对象的编程

3  c++也具备众多的库,很方便应用

4 c++中有着一个功能强大的数据类型,指针,你用了指针会一直用一直爽的,哈哈.

c++在完成源代码后,需要进行编译和链接,在linux上进行开发的时候,常使cmake来完成这个功能,而且在链接编译阶段会有很多的bug,加上c++语言更偏向于机器多一点,因此思维上需要考虑内存相关的问题.你最直观的感受c++和python的不同就是数据类型的问题了,python不是一种强数据类型的语言,类型随时改变,如下图所示,但是你在c++里需要注意这个问题,直接这样做会报错.

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值