摘要:1.元素定位 2.屏幕操作 3.安装,卸载,关闭 4.其他常用
阅读全文
摘要:class MyTestCase(unittest.TestCase): def setUp(self): desired_caps = {} #以下是初始化数据 desired_caps['platformName'] = 'Android' desired_caps['platformVersion'] = '5.1' ...
阅读全文
摘要:—获取程序启动信息,获取包名 adb logcat | grep START —冷启动app(冷启动指app第一次在手机设备中启动)/热启动(指app按home键或返回键退再后台) adb shell am start -W -n com.android.browser/.BrowserActivi
阅读全文
摘要:函数被装饰器装饰后会失去原本的属性和元数据,为了保存原因的元数据,使用functools下的wraps下的装饰器 未使用装饰器装饰时: 运行结果: exampleNone 使用装饰器后 运行结果:name的属性为装饰器的属性 wrapNone 加入装饰器后: 结果: exampleNone('__m
阅读全文
摘要:使用装饰器格式为:@+装饰器名称;实现一个装饰器首先要理解闭包的思想,如下例子:实现了斐波那契数列 以上实现方式每次都要计算元素,非常耗时和消耗内存,以下增加了一个缓存的字典,从缓存中读取大大提高了运算的速度 如果实现多种不同的算法,为了节省运算时间,每个算法都要添加一个缓存,会出现很多的重复代码,
阅读全文
摘要:类之间的实例可以用<,<=,>,>=,==,!=的运算符进行比较。可以对比较运算符重载,实现__lt__,__le,__gt__,__ge__,__eq__,__ne__这些方式。全部使用以上方法,会很复杂和多余。这里使用了functools库中的total_ordering装饰器简化代码。例如下:
阅读全文
摘要:在面向对象编程中,把方法(函数)看作对象的接口。直接访问属性可能不安全,或设计上不够灵活。但使用调用方法形势上不如访问属性简洁。 使用property为类创建可管理的属性。
阅读全文
摘要:一、解析简单的xml文档 使用xml.etree.ElementTree 下的parse() xmlName.xml的文档的内容如下: 以下代码是对xmlName.xml文档的解析
阅读全文
摘要:import sys class Student(object): def __init__(self, id, name, sex, age): self.id = id self.name = name self.sex = sex self.age = age class Student_slots(objec...
阅读全文
摘要:json.dumps(),json.dump,json.loads,json.load的使用
阅读全文
摘要:一、读写csv数据 使用with..as可以不用对文件关闭操作 二、读写excel文件
阅读全文
摘要:一、拆分含义多种分隔符的字符串 二、判断以‘a’开头以‘b’结尾的字符串 三、调整字符串文本格式 使用re.sub()方法 四、将多个字符串拼接成一个字符串 五、字符串左、右、居中对齐 六、去掉字符串中不需要的字符
阅读全文
摘要:运用场景:在表查询中总会遇到一些枚举定义的字段,如表:姓别(sex)字段,1为男,2为女。如果枚举过多很难记住对应的意思,都需要查看表注释,这样既麻烦有浪费时间。下面就距离对比case when的用法和好处。 1.普通查询 结果: 2.使用case when 结果:
阅读全文
摘要:from random import randint,sample s1 = {x: randint(1,4) for x in sample('abcdefg',randint(3, 6))} s2 = {x: randint(1,4) for x in sample('abcdefg',rand
阅读全文
摘要:使用filter()或列表解析,第二种方法更高效。 例一(列表,集合筛选): from random import randint data = [randint(-10, 10) for _ in xrange(10)] print filter(lambda x:x>=0, data) #方法一:filter()函数 print [x for x in data if x>=0]#方法...
阅读全文