神奇的Python,神奇的wxPython

  1. 写代码这么多年,先后接触过basic, c/c++,sql, 为了写android app又学了一下java,写了个客户端, 近期服务器代码移植到Linux平台后,喜欢上了Linux系统的干净简洁,比windows10好用多了,好吧,因为最初的客户端是采用MFC写的windows专用,根本没想过有一天会喜欢上Linux,要支持Linux桌面,此外还有那个Mac平台,总不能也单独用obj-c去写个客户端吧?于是就想找个能够跨平台支持的语言和库.

  2. 第一选择肯定是wxWidgets, 但是这货是c/c++接口,使用这货重写客户端,等于我重新从底层开发一次,毕竟Mac 和各种的Linux发行版的api是不同的,光是分支处理都会让人崩溃,而我的目的仅仅是快速做个能够支持基本功能的客户端,不想花费太多时间去处理界面,更不想把协议类重写一次.因此放弃

  3. 第二选择是QT,原因同上,QT我更不熟悉,而且还牵扯到授权费用,因此想了想还是放弃.

  4. 第三选择是java,但是java并没有一个主流的能跨平台支持的界面,主要用在服务器后台和移动,桌面的很少,效率也差,最关键的是,我对java并不喜欢,也不熟悉,因此还是放弃了

  5. 然后就停顿下来,想来想去,准备使用wxWidgets来重写一个简单的应用了,一次偶然的机遇,看到wxWidgets居然有Python版本,这就是wxPython,好吧,我承认在此之前我从来没学过python语言,基本一直在用c/c++开发,但是我知道python在工人智能领域是非常主流的,当然在国内,这个人工智能变成了网络爬虫,各个网站都爬取对方网站的内容抄袭为自己网站的数据,然后去套取投资人的钞票了. 语言都是通的,因此花了一天时间,把python给学完了,不能不说,这python简直是basic的人性化翻版,各种的简单,而且默认的库非常丰富,因此就决定用python来写我的客户端了

wxpython我是第一次接触,你知道重新学一个界面开发库是非常难的,很多人windows开发桌面很多年都没有搞清楚内部到底是如何在运行,对于我这样一个刚学了python,第一次尝试wxpython界面开发的人,难度是相当巨大的,但是因为有了MFC的开发基础,加上wxpython提供了完整的界面开发demo,那些demo都写的非常简单明了,让人基本一看就明白了. python最大的问题是它自带的编辑器太烂了,因为python是用缩进来控制的,不像c/c++那样用分号来结尾,而用tab和空格你是分不清楚的,因此这该死的编辑器害的我差点崩溃,老是提示我没有对齐. 然后看别人的建议,最后选择了vscode, 加python插件, 这才有了行云流水的感觉,不能不说微软做的编辑器确实牛,效率提升不是几倍,而是 几十倍.

有了vscode编辑器的加持,难以相信,只用了几天时间,我就将c/c++需要开发测试几个月才做完的客户端的简化版本给做好了,而且代码一共只有1500行左右,还能支持多国语言,连我自己都不相信,从开始学python到用wxpython写界面和客户端,加调试,一共只用了10来天,这什么效率?

神奇的wxpython,神奇的python, 真的是神奇

python非常适合调用c/c++库写的部件,从上层进行流程和结果控制跳转,非常方便,而c/c++的的缺点就是上层控制跳转什么的需要硬编码,非常复杂,因此python + c/c++简直是天生的恋人,互补到了极点. 虽然python本身是解释执行,但是由于大量的库实际是使用c/c++编写的,因此效率很高,明显要比java流畅的多.

个人感觉,python缺点是不够严谨,因为代码编写中手误是经常有的,由于python变量不需要声明,有时候错了一个字符,就变成了两个变量,找来找去找的眼睛都花了才发现.其次python里的对象属性方法是运行时才确定,一不小心可能就用了个不支持的属性方法,然后,函数返回太灵活了,允许同一个函数返回各种类型,甚至无返回,简直脑洞大开. 另外,python对线程控制非常弱,因此要执行多线程并发,还是建议直接在c/c++层的代码里实现,只用python控制线程数量和结果,而不要在python里做多线程控制.

 

废话不多说,直接上运行效果图:

代码下载(需要安装python 3.7 + wxPython 4.0以上版本):

http://www.phoenixp2p.com/cn/xpython.htm

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值