在Python中,装饰器的本质就是Python中的一个函数,其来源自Python面向对象。装饰器是在函数调用之上的修饰。这些修饰仅是当声明一个函数或方法的时候,才会被应用额外的调用。有点类似Java中的AOP(面向方面编程)。同时在设计模式中,还有装饰器模式,也即是:装饰器模式(DecoratorPattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。原则是:不修改被修饰函数的源代码,不修改被修饰函数的调用方式。装饰器的用途:引入日志增加计时
系统 2019-09-27 17:55:09 1871
前言自动化测试中我们存放数据无非是使用文件或者数据库,那么文件可以是csv,xlsx,xml,甚至是txt文件,通常excel文件往往是我们的首选,无论是编写测试用例还是存放测试数据,excel都是很方便的。那么今天我们就把不同模块处理excel文件的方法做个总结,直接做封装,方便我们以后直接使用,增加工作效率。openpyxlopenpyxl是个第三方库,首先我们使用命令pipinstallopenpyxl直接安装注:openpyxl操作excel时,行
系统 2019-09-27 17:54:53 1871
Python单元测试unittest中提供了一下四种装饰器实现测试跳过和预期故障。(使用Python2.7.13)请查考Python手册中:https://docs.python.org/dev/library/unittest.htmlThefollowingdecoratorsimplementtestskippingandexpectedfailures:#以下装饰器实施测试跳过和预期故障:@unittest.skip(原因)Unconditiona
系统 2019-09-27 17:54:46 1871
今天闲来无聊无意间看到了百度股票,就想着用python爬一下数据,于是就找到了东方财经网,结合这两个网站,写了一个小爬虫,数据保存在文件中,比较简单的示例,就当做用来练习正则表达式和BeautifulSoupl了。首先页面分析,打开东方财经网股票列表页,和百度股票详情页,右键查看网页源代码,网址后面的代码就是股票代码,所以打算先获取股票代码,然后获取详情,废话少说,直接上代码吧:importreimportrequestsfrombs4importBeau
系统 2019-09-27 17:54:39 1871
今天我们来介绍下Python基础教程学习之iter()方法另外的用法。据说很少有人知道这个用法!一、上代码、学用法我们都比较熟悉iter(obj),会返现一个迭代器,如果obj不是可迭代对象,则会报错。但其实如果仔细看官方文档,会发现iter()方法其实是接受两个参数的,文档说明如下iter(object[,sentinel])sentinel英文翻译为哨兵。sentinel参数是可选的,当它存在时,object不再传入一个可迭代对象,而是一个可调用对象,
系统 2019-09-27 17:54:30 1871
解决多版本同时存在的pip安装模块如果同时存在Python2和Python3版本,则需要通过python-mpipinstall的方式给指定的Python安装模块。安装模块超时,更换安装源当安装模块超时时可以通过修改超时时间的方式来进行解决,也可以通过修改安装源的方式解决。修改超时时间pip--default-timeout=100installnumpy通过设置临时安装源的方式pipinstallnumpy-ihttps://pypi.doubanio.
系统 2019-09-27 17:54:25 1871
最近在OpenCV-Python接口中使用cv2.findContours()函数来查找检测物体的轮廓。根据网上的教程,PythonOpenCV的轮廓提取函数会返回两个值,第一个为轮廓的点集,第二个是各层轮廓的索引。但是实际调用时我的程序报错了,错误内容如下:toomanyvaluestounpack(expected2)其实是接受返回值不符,如果你仅仅使用一个变量a去接受返回值,调用len(a),你会发现长度为3,也就是说这个函数实际上返回了三个值第一个
系统 2019-09-27 17:54:01 1871
最近在学习Python,所谓好记性不如烂笔头故借这次学习机会做个笔记,方便今后快速再学习。以下是常见函数的使用说明:range函数该函数用于创建数列,根据参数个数不同对应不同的用法进行说明(1)range(a,b,c)三个参数时,表示创建一个从a~b-1的数组,每c个数取一个值。当c=1时,可省略c,即用法等同于(2)(2)range(x,y)两个参数时,表示创建一个从a~b-1的数组,一共b-a个元素。当x=0时,可省略y,用法等同于(1)(3)rang
系统 2019-09-27 17:53:51 1871
在Python普通字符串中在Python中,我们用'\'来转义某些普通字符,使其成为特殊字符,比如In[1]:print('abc\ndef')#'\n'具有换行的作用abcdefgIn[2]:print('abc\tdef')#'\t'具有制位符的作用abcdefg我们还可以用'\'来转义特殊字符,使其成为普通字符,比如In[3]:print('abc\\tdef')#使'\'成为一个普通的字符,没有转义作用abc\tdefIn[4]:print('ab
系统 2019-09-27 17:53:25 1871
模块:模块就是一个python文件。模块就是一个python文件。功能:1.可以提高文件的重复利用率。提高开发效率2.用于划分程序结构。自定义模块:模块就是一个python文件而已,所有python代码都可以放入模块,实际开发中,模块放入的内容都是重复利用率高的内容主要包含:1.为当前模块专门定义的变量【其他语言一般都是常量】2.函数。3.类4.测试代码注意:模块的命名不要和内置模块重名!测试代码统一放到判断当中if__name__=='__main__'
系统 2019-09-27 17:53:19 1871