IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 让python飞:形象理解python map、reduce、filter、stored、单元测试 -> 正文阅读

[开发测试]让python飞:形象理解python map、reduce、filter、stored、单元测试

在这里插入图片描述
Day17水晶龙舟和减少狮大战海盗
有一只运送藏宝图的龙舟在海上自由自在的徜徉
(高阶函数之map:map(fn,lsd1,[lsd2]):)这时突然有只长长的小船来到船尾,目测来着不善(第二个参数:lsd1 --> 序列对象(字符串、range、列表...))龙头念咒急急如律令,这时天降雄狮到船尾(第一个参数:fn --> 函数对象)龙舟立刻变成水晶状,龙嘴渐渐张开。海盗一个接一个被雄狮吸入口中,排泄到龙舟上时也变成透明状,按先后顺序坐在龙舟上。由于龙嘴张开,水晶海盗可以一个一个的从龙嘴爬出。(功能:将fn函数作用于lsd1中的每一个元素上,将每次执行的结果都存入到一个map对象中返回给程序;【注意】:得到的这个map对象属于一个迭代器对象,属于惰性序列的范畴print(list(map(int,lt))))这时又同时来了两条船,他们并排着来到龙舟尾部,雄狮从每只船上抓一个,左右手各拿一只同时放入口中。不一会功夫,来自两个不同船上的海盗就融合成一个水晶人(res_map = map(lambda x,y:x + y,lt1_map,lt2))这时又连着开来好几只海盗船,龙舟一看情况不妙,赶紧打信号弹,从放棵兔子马戏团(reduce函数属于functools模块中的函数,所以需要先导入functools模块,再使用代码如下:from functools import reduce)召集来减少狮(高阶函数之reduce)它有两颗球,1号,2号。它能先把一个船上的海盗装在1号,2号球里,然后进行发功,2号球里的海盗就到1号球里去融合,然后船上的下一个海盗就到了2号球里,然后狮子再发功,再进入一号球中融合。最后,所有的海盗融合完毕,最后就融合成一个海盗了(功能:先将lsd中的第一和第二个元素分别取出给到fn中参与运算,将运算以后的值和lsd中的第三个元素再次传入给到fn参与运算,以此类推...)(print(reduce(lambda x,y: x * 10 + y,map(int,str1))))这样好多船上的海盗就被消灭了。这时水晶龙舟有个海盗说,其实有很多海盗都是被逼的,他们都是平民被抓取做海盗的,希望龙舟能解救他们一把。原来如此,水晶龙舟立刻又发信号弹,不一会一条水晶龙舟开过来,舟位站着一个拿着大筛子的雄狮(高阶函数之filter)雄狮肩头站着一个女警察,她说可以了,那么这个海盗就可以通过滤网坐到水晶龙舟上(filter函数:过滤数据,最终返回给程序一个filter对象(惰性、迭代器对象))同时该海盗将变成透明海盗,而且这条龙舟的龙头也是张开嘴的(将lsd中的每一个元素都给到fn函数;如果fn函数的执行返回True,那么就保留此元素到filter对象中,如果fn函数的执行返回False,那么就舍弃此元素,不保留到filter对象中,最终filter函数执行完毕了,返回给程序一个filter类型对象(迭代器对象)。)(print(list(filter(lambda x: len(x) > 5,lt1))))
地图龙舟上拉满了水晶海盗,但他们高低不一,看起来不美观。所以想用给表链排列的书夹给他们排列好。但是过滤龙舟不同意了。他说那个书夹只能给大表链排列高低,而且是在原大表链上操作的,万一不满意的话就改不了了(对于list中的sort函数而言:其执行完毕之后会影响到原本的这个list中的内部结构(内部的元素位置发生变化了))所以我建议还是用双蛇洞里的万能书夹吧。它能给列表和字典排序,而且还能返回一个副本

(对于sorted函数而言:其执行完毕之后会返回给程序一个新的list对象(记录排序之后的数据结构),原本的容器对象不会发生变化)(lt4 = sorted(lt3,key=len,reverse=True)
lt6 = sorted(lt5,reverse=True,key=lambda x:x['age'])

地图龙舟表示同意。
灭神狮子完事后就回到了放棵兔子马戏团,回来后,马戏团团主检查他有没有损害,所以就把它安排到了一个房间里面
(#导入需要被测试的函数from method import mySum)然后将穿着蓝色工作服的调试工师傅叫来(#导入测试模块 import unittest)然后整了一个大玻璃箱(步骤一:需要先导入测试模块unittest,然后自定义类继承unittest中的TestCase类,)箱子上有“测试箱”三个字。箱子里面最上方有个提醒器

( 对于setUp()函数而言:在执行主模块的时候由系统自动调用(时机:在被测试的函数执行之前被调用执行    
def setUp(self):
        print('对函数开始单元测试...'))

你可以随意设置提醒的内容。在箱子里面最下方也有个结束提醒器

(  对于tearDown()函数而言:
        在执行主模块的时候由系统自动调用(时机:在被测试的函数执行之后被调用执行)def tearDown(self):
        print('单元测试结束了...')))

将要被测试的小狮子头上贴一个”test_”标志,放入玻璃箱中,会有个听诊器听小狮子肚子,看是不是和正常的声音一样。警报器上有小狮子提供的肚子声音记录和正常的声音

(
通过self调用assertEqual(,,)
            参数1:需要被测试的函数        【注意】此函数调用必须有小括号以及实参
            参数2:断言的结果
            参数3:如果断言失败了,错误提示信息)

如果不一样,听诊器会自动发出警报,警报的内容也可以自己设置。最后,在确定本房间名(当前模块名)是和本房间运行的机器名一致时,开始测试。结果狮子没问题!

if __name__ == '__main__':
    #需要通过测试模块unittest调用其main()
    unittest.main()if __name__ == '__main__':的运行原理

每个python模块(python文件,也就是此处的 test.py 和 import_test.py)都包含内置的变量 __name__,当该模块被直接执行的时候,__name__ 等于文件名(包含后缀 .py );如果该模块 import 到其他模块中,则该模块的 __name__ 等于模块名称(不包含后缀.py)。

而“__main__” 始终指当前执行模块的名称(包含后缀.py)。进而当模块被直接执行时,__name__ == 'main' 结果为真。
  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-11 19:06:55  更:2021-09-11 19:07:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 5:06:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码