Python
文章平均质量分 64
wingWC
Qt/OpenCV/AI
展开
-
利用Swig在python中调用C/C++代码
用途当我们在开发Python程序的时候,我们可以利用Python的特性来进行敏捷开发,但有时候我们可能在程序的关键地方需要比较高的运行效率,或者当我们与底层进行通信时要使用C++来运行,这时我们可以有两种方法。一是使用subprocess模块打开编译好的exe程序,与exe程序进行通信,二是利用Swig工具将C++代码转化为Python文件进行调用,本文主要讲解第二种方法。本文参考了:在Pytho原创 2017-10-30 21:09:38 · 2377 阅读 · 1 评论 -
异步IO:Python中的协程
我们在实际的问题中会遇到一些堵塞线程的场景,比如UI程序进行耗时的计算阻塞主线程;进行IO操作,比如读写文档或者网络传输时会阻塞线程等等,之前我采用的是使用多进程+多线程的处理方式,但这种方式相比于协程来说都比较慢,特别是在Windows操作系统下启动一个线程是开销很大的,因此掌握Python中的协程对于处理一些高并发需求来说是非常重要的,看完了廖雪峰的官方网站–异步IO后我总结了一下我对于协程的理原创 2017-12-07 14:42:57 · 658 阅读 · 0 评论 -
在PySide中使用多进程与多线程(multiprocess,threading)
在UI界面程序中,使用到多进程与多线程是很常见的场景,有时候我们需要将一些耗时的操作放在其他的线程或者进程中,避免卡死主线程。而且利用多线程加Qt的信号槽机制我们可以在子进程中实现事件监听,实时监测进程间的通信。之前一直对线程和进程的理解不太深刻,借着这次机会好好理解了一下多线程与多进程,等之后在接触带锁的多线程模式。multiprocess是python的一个库,由于python的跨平台特性,我们原创 2017-11-11 21:09:36 · 6688 阅读 · 1 评论 -
Python装饰器与函数式编程
一、函数式编程“函数式编程”同“面向对象编程”,“面向过程编程”一样是一种编程范式,它属于”结构化编程”的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。相比于面向对象,函数式编程的最大优点在于将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念,关于函数式编程的更多知识还有待于学习,这里先埋个坑,以后再补。二、闭包简单来说,闭包是是引用了自由变量的函数,闭包包含自由(未绑定到特原创 2017-11-01 13:38:22 · 364 阅读 · 0 评论 -
使用pyside+designer将.ui文件转化为.py文件的两种方法
一、使用pyside-uic.exe将.ui文件转化为.py文件1、进入Pycharm的设置界面 2、进入外部工具设置 3、配置designer.exe,注意program路径和working directory路径 4、配置pyUIC,注意找到pyside-uic.exe文件所在的路径和参数 当配置完成之后就可以直接在pycharm中利用designer生成.ui文件,并且使用pyUIC将原创 2017-10-22 13:36:19 · 15459 阅读 · 0 评论 -
Python切片操作
本文参考了点击打开链接的博客,来加深对于切片操作的理解Python的切片可以理解为L[开始:结束:步进],例如L[0:6:1]可以理解为从序号0开始,步进为1,直到6结束,和C++的循环一样,数组的选择规则是左闭右开,即[0,6),从0开始(包括0)到6结束(不包括6),开始,结束的默认值由步进的正负决定,当步进为正值时,开始的默认值为切片起点索引,也就是0,结束的默认值为切片终点的索引;当步原创 2017-09-12 22:07:30 · 713 阅读 · 0 评论 -
python中的类属性与实例属性
python中的类属性类似于C++中用static修饰的属性,是类所有的,被类的所有实例共享,而实例属性是每个类独有的,但与C++不同的是python的查找机制,如果实例有了该类属性,则不会继续查找类属性,引用一段话来解释:Python中属性查找机制Python中属性的获取存在一个向上查找机制,还是拿上面的例子做说明:Python中一切皆对象,AAA属于类对象,obj1原创 2017-08-03 18:54:07 · 474 阅读 · 0 评论 -
使用Qt+PySide将UI文件转化为py文件
利用Qt+python进行界面设计时,可用PySide自带的designer程序生成ui文件,然后利用脚本pyside-uic将UI文件转化为py文件:pyside-uic testGUI.ui -o testGUI.py原创 2017-06-08 20:54:11 · 3859 阅读 · 0 评论 -
记录一次艰辛的Python包持续集成与发布过程
缘由为了保证代码质量,编写单元测试是非常必要的,特别是在团队开发的过程中,编写有效的单元测试保证每人编写的模块能够正常工作,以免项目后期出现各种不可预知的bug,因此,在提交代码前运行单元测试,可以有效保证代码的健壮性。这种工作当然是要自动化完成,因此,许多CI工具也应运而生,最常见的就是Travis-CI,它很好地与Github兼容,每当我们提交代码时,都会执行.travis.yml下的指令...原创 2018-05-20 09:12:27 · 1301 阅读 · 0 评论