在一些语言中,在函数中可以(嵌套)定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。闭包可以用来在一个函数与一组“私有”变量之间创建关联关系。在给定函数被多次调用的过程中,这些私有变量能够保持其持久性。——维基百科defmake_printer(msg):defprinter():printmsg#夹带私货(外部变量)returnprinter#返回的是函数,带私货的函数printer=make_printer('Foo!')prin
系统 2019-09-27 17:54:37 2298
最近在项目中遇到把字典类型的数据保存文件,在另一个模块又把文件中的内容转换为字典的需求,在这里记录一下。字典保存成文件importpickledata=dict(key="aaa",val=22)withopen("data.txt","wb")asf:pickle.dump(data,f)文件读取为字典importpickledata={}withopen("data.txt","rb")asf:data=pickle.load(f)print(data
系统 2019-09-27 17:51:02 2298
最近在做一个项目的时候,需要将PDF文件作为输入,从中输出文本,然后将文本存入数据库中。为此,我找寻了很久的解决方案,最终才确定使用tesseract。所以不要浪费时间了,我们开始吧。1.安装tesseract在不同的系统中安装tesseract非常容易。为了简便,我们以Ubuntu为例。在Ubuntu中你仅仅需要运行以下命令:这将会安装支持3种不同语言的tesseract。2.安装PyOCR现在我们还需要安装tesseract的Python接口。幸运的是
系统 2019-09-27 17:37:44 2298
正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:复制代码代码如下:>>>classStaff(object):...pass...然后,尝试给实例绑定一个属性:复制代码代码如下:>>>s=Staff()>>>s.name='jack'>>>prints.namejack>>>还可以尝试给实例绑定一个方法:复制代码代码如下:>>>defset_age(self
系统 2019-09-27 17:37:40 2298
文章目录1.Python作用2.Python语言版本3.Python语言的特点4.定义变量5.python和其他语言的区别6.python文件的后缀类型7.python中的注释方式8.关键字9.代码缩进10.Python中常用的数据类型11.运算符12.Python之禅的查看1.Python作用(1)辅助数据采集:爬虫(2)数据分析:numpy(3)运维(4)人工智能(5)网站开发:知乎、豆瓣、Django2.Python语言版本Python2:Pytho
系统 2019-09-27 17:57:48 2297
一、案例说明本节定义一个小汽车的类Car,类中包括车名carname、百公里油耗oilcostper100km、价格price三个属性。然后实现__lt__、__gt__、__le__、__ge__四个方法(这4个方法的用途请见上一节《第8.21节Python中__lt__、__gt__等“富比较”(“richcomparison”)方法用途探究》(https://blog.csdn.net/LaoYuanPython/article/details/95
系统 2019-09-27 17:57:22 2297
面系那个对象开发原则.高内聚.低耦合软件设计中通常用耦合度和内聚度作为衡量模块独立程度的标准。划分摸块的一个准则就是高内聚低耦合。这是软件工程中的概念,是判断设计好坏的标准,主要是面向OO的设计,主要是看类的内聚性是否高,偶合度是否低.每一个类完成特定的独立的功能,这个就是高内聚。耦合就是类之间的互相调用关系,如果耦合很强,互相牵扯调用很多,那么会牵一发而动全身,不利于维护和扩展。类之间的设置应该要低耦合,但是每个类应该要高内聚.耦合是类之间相互依赖的尺度
系统 2019-09-27 17:56:27 2297
无规矩不成方圆。编写代码也是,如果没有大概的框架,管理代码将会是一件很头疼的事。先看看笔者以前写的python脚本:如果只有一个用例,这样看着好像挺整洁的。但是当用例越来越多后,如果元素定位发生了改变,那你将要在多个类、多个方法中,去寻找那个元素,然后一个一个修改,这将耗费很多时间。引入PO设计模式后,管理代码将会很轻松。什么是PO设计模式?PO设计模式是一种业务流程与页面元素操作分离的模式;这意味着,当UI发生变化,元素定位发生变化时,只需要在一个地方修
系统 2019-09-27 17:54:46 2297
今天在网上拷贝一份关于人脸检测变换的代码,然后他的默认功能imwrite保存的图片是没问题的,而当我想用imshow显示出来的时候却报错:error:OpenCV(4.0.0)C:\projects\opencv-python\opencv\modules\highgui\src\window_w32.cpp:1230:error:(-215:Assertionfailed)dst.data==(uchar*)dst_ptrinfunction'cvSho
系统 2019-09-27 17:54:35 2297
01.递归实现快排:defquick_sort(array):iflen(array)<2:returnarrayelse:pivot=array[0]less=[xforxinarray[1:]ifx<=pivot]more=[xforxinarray[1:]ifx>pivot]returnquick_sort(less)+[pivot]+quick_sort(more)a=[1,9,4,2,7,5]print(quick_sort(a))02.冒泡排序
系统 2019-09-27 17:51:51 2297
前言:json是一种通用的数据类型,任何语言都认识,长得像字典,形式也是k-v{},其实json是字符串。字符串不能用key、value来取值,要先转成字典才可以格式如下:{"error_code":0,#要使用双引号,如果是单引号则运行时会报错,可以上网做在线json格式校验"stu_info":[{"id":0,"name":"a","sex":"男","age":22,"grade":"天蝎座","gold":100},{"id":1,"name":
系统 2019-09-27 17:50:53 2297
阅读时间:2019.08.25----2019.08.30:第一部分基础知识。第2章:变量1、变量的命名和使用变量名只能包含字母、数字和下划线。可以字母或者下划线打头,但不能以数字打头。例如:可以为message_1,不能为1_message。变量名不能包含空格,但可使用下划线分隔。例如:变量名greeting_message,不能为greetingmessage。不能用Python关键字和函数名作为变量名。慎用小写字母l和大写字母O。2、字符串用引号括起
系统 2019-09-27 17:48:19 2297
之前需要做一些目标检测的训练,需要自己采集一些数据集,写了一个小demo来实现图片的采集使用方法:指定name的名称,name为分类的标签按n键拍摄图片程序会在当前目录下生成一个pictures的文件夹,图片存放在其中print("正在初始化摄像头...")importcv2importosimportdatetimecap=cv2.VideoCapture(0)print("初始化成功!")#name='play_phone'#name='haqian'
系统 2019-09-27 17:46:30 2297
python中临时文件及文件夹使用文章目录python中临时文件及文件夹使用一、简介二、临时文件夹2.1获取临时文件夹2.2生成临时文件夹三、临时文件3.1生成不自动删除(关闭时)的临时文件3.2生成自动删除的临时文件一、简介这里介绍python中临时文件及文件夹使用。使用的是tempfile包(安装:pipinstalltempfile),参考地址是https://docs.python.org/3/library/tempfile.html。二、临时文
系统 2019-09-27 17:45:37 2297
python的多进程性能要明显优于多线程,因为cpython的GIL对性能做了约束。Python是运行在解释器中的语言,查找资料知道,python中有一个全局锁(GIL),在使用多进程(Thread)的情况下,不能发挥多核的优势。而使用多进程(Multiprocess),则可以发挥多核的优势真正地提高效率。对比实验资料显示,如果多线程的进程是CPU密集型的,那多线程并不能有多少效率上的提升,相反还可能会因为线程的频繁切换,导致效率下降,推荐使用多进程;如果
系统 2019-09-27 17:56:12 2296