什么是闭包?简单说,闭包就是根据不同的配置信息得到不同的结果。再来看看专业的解释:闭包(Closure)是词法闭包(LexicalClosure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。延迟绑定Python闭包函数所引用的外部自由变量是延迟绑定的。PythonIn[2]:defmultipliers():...:ret
系统 2019-09-27 17:56:25 2075
生成器在Python中,使用了yield的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,只能用于迭代操作,更简单点理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到yield时函数会暂停并保存当前所有的运行信息,返回yield的值,并在下一次执行next()方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。列表推导式空间开销大占用内存耗时大,.生成器保存的是算法,而列表保存的计算后的内容,所以同样内容的
系统 2019-09-27 17:56:08 2075
Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。举个例子,某些网站是需要登录后才能得到你想要的信息的,不登陆只能是游客模式,那么我们可以利用Urllib2库保存我们以前登录过的Cookie,之后载入cookie获取我们想要的页面,然后再进行抓取。理解cookie主要是为我们快捷模拟登录抓取目标网页做出准备。我之前的帖子中使用过urlopen()这个函数来打开网页进行抓取,这仅仅只是一个简单的Py
系统 2019-09-27 17:56:06 2075
安装urllib库更适合写爬虫文件,scrapy更适合做爬虫项目。步骤:先更改pip源,国外的太慢了,参考:https://www.jb51.net/article/159167.htm升级pip:python-mpipinstall--upgradepippipinstallwheelpipinstalllxmlpipinstallTwistedpipinstallscrapy常用命令核心目录新建项目:scrapystartprojectmcq运行独立的
系统 2019-09-27 17:55:57 2075
Virtualenv我们都知道Python开发项目很容易,项目也经得起工业级别考验。很多开发者都会习惯用Python开发项目,但是由于我们每个项目情况都有些不一样。比如今天可能用的是Django1.8,明天可能用的是Django2.1。如果不进行环境隔离全局安装就会导致包的冲突,依赖不同,出现问题。这个时候每个应用都需要一套「独立」的Python运行环境。而Virtualenv就是拿来为应用创建这一套「隔离」的Python运行环境。首先用pip安装pipi
系统 2019-09-27 17:55:33 2075
面向对象编程:把一组数据结构和处理它们的方法组成对象(object),把相同行为的对象归纳为类(class),通过类的封装(encapsulation)隐藏内部细节,通过继承(inheritance)实现类的特化(specialization)和泛化(generalization),通过多态(polymorphism)实现基于对象类型的动态分派。面向对象思想三大要素:封装,继承和多态。1定义使用类classStudent(object):#__init__
系统 2019-09-27 17:55:18 2075
目录├─第1节数据结构和算法基础│├─01.算法引入││1-算法引入│││├─02.时间复杂度和大O表示法││01-时间复杂度与大O表示法││02-最坏时间复杂度与计算规则││03-常见时间复杂度与大小关系│││├─03.Python列表和字典││01-代码执行时间测量模块timeit││02-Python列表类型不同操作的时间效率││03-Python列表与字典操作的时间复杂度│││└─04.数据结构引入│01-数据结构引入│├─第2节顺序表│├─01.
系统 2019-09-27 17:55:12 2075
这次用Python实现的是一个接球打砖块的小游戏,需要导入pygame模块,有以下两条经验总结:1.多父类的继承2.碰撞检测的数学模型知识点稍后再说,我们先看看游戏的效果和实现:一、游戏效果二、游戏代码#导入模块importpygamefrompygame.localsimport*importsys,random,time,mathclassGameWindow(object):'''创建游戏窗口类'''def__init__(self,*args,**
系统 2019-09-27 17:54:09 2075
在图像处理中每秒钟都要做大量的运算,所以你的程序不仅要能给出正确的结果,同时还必须要快。所以这节将要学习:•检测程序的效率•一些能够提高程序效率的技巧1.使用OpenCV检测程序效率cv2.getTickCount()函数返回从参考点到这个函数被执行的时钟数。所以当你在一个函数执行前后都调用它的话,你就会得到这个函数的执行时钟数。cv2.getTickFrequency()返回时钟频率,或者说每秒钟的时钟数。另外:也可以导入time模块,使用time.ti
系统 2019-09-27 17:53:21 2075
LineplotsAxes3D.plot(xs,ys,*args,**kwargs)绘制2D或3D数据参数描述xs,ysX轴,Y轴坐标定点zsZ值,每一个点的值都是1zdir绘制2D集合时使用z的方向其他的参数:plot()Python代码:importmatplotlibasmplfrommpl_toolkits.mplot3dimportAxes3Dimportnumpyasnpimportmatplotlib.pyplotaspltmpl.rcPar
系统 2019-09-27 17:52:54 2075