测试开发之函数进阶纯函数
目录一、纯函数的概念1。纯函数2。非纯函数3。纯函数:相同的输入保证相同的输出4。纯函数和非纯函数对比二、纯函数的3个原则三、函数的副作用四、Python中的内置函数
重点需要记住纯函数的概念和函数的副作用,面试会问,哈哈。一、纯函数的概念
一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。
纯函数不是特定的语法,不是特定的功能,它只是一个概念。就是一个函数使用的时候的一种规则。1。纯函数
虽然这是个递归函数,它也是纯函数的一种:deffun(n):ifn1:递归临界点:当达到递归临界点的时候,就不再调用自身函数的条件return1else:returnnfun(n1)4321fun(4)2。非纯函数
函数里面进行一系列计算,它返回的结果是根据传入的数据相关。不再依赖于任何的其它数据,比如定义个a100,那么在:ifn0:递归临界点:当达到递归临界点的时候,就不再调用自身函数的条件return1else:returnnfun(n1)4321
这段代码,也就是纯函数里面用到了外面的变量:a100deffun(n):print(a)ifn0:递归临界点:当达到递归临界点的时候,就不再调用自身函数的条件return1else:returnnfun(n1)4321fun(4)
那这种函数就不再叫做纯函数了。print(a)因为它对外部变量有引用。3。纯函数:相同的输入保证相同的输出
纯函数不会引用外部的变量,它调用的结果只对你传入进去的参数fun(4)有关。
例如:
定义a100,returna返回一个a,传入参数i,deffunc(i):。
这个时候调用这个函数,传进去的参数跟它的返回值有关吗?
这个函数和它的返回值没有关系。传进去的func(10),不管传什么,不会影响返回值returna。a100deffunc(i):print(99999)print(i)returnafunc(10)
纯函数是传进去的参数是什么,返回的结果只跟你的参数有关。
纯函数:不管在什么时候调用(不管在哪里调用),传入的参数相同,返回的结果就一定是一样的。
例如:
这个函数,调用的时候传个10进去,它返回的时候应该是多少呢?
它返回的结果是110。a100deffunc(i):iiareturniresfunc(10)print(res)
在下面对a进行修改,对a再赋个值:
aa1111
那么这个时候,a的值肯定发生变化了。这个时候在这里再调用函数,再传入10,func(10)。a100deffunc(i):iiareturniresfunc(10)print(res)aa1111res2func(10)print(res2)
同样调用的是同一个函数,传入的参数都是相同的func(10),但是拿到的返回值却不是相同的。
像这种函数,它会受外部环境变量的影响,那么这种函数不能称为纯函数。4。纯函数和非纯函数对比函数func1返回的结果为两个参数相加的结果deffunc1(a,b):returnabvar1100函数func2返回的结果为参数a和外部变量var1相加的结果deffunc2(a):returnvar1a在上面两个案例中func1返回的结果只受传入的参数的影响,而func2不仅受传入参数的影响还会受外部变量var1的影响,像func1这样的返回值只跟传入参数有关的函数,我们把它叫做纯函数。二、纯函数的3个原则
原则一:变量都只在函数作用域内获取,作为的函数的参数传入。
原则二:不会产生副作用,不会改变被传入的数据或者其它数据(全局变量)。
原则三:相同的输入保证相同的输出。
解释原则一:
纯函数的变量只在函数的作用域内获得,也就是说纯函数里面要么使用的是函数内部定义的,要么使用的是传进来的参数,不会再使用其它任何的变量了。
解释原则二:
纯函数是不会产生副作用的。
解释原则三:
任何时候调用,只要你传入的参数是相同的,它给你返回的结果都是一样的。三、函数的副作用
函数的副作用就是当函数被调用的时候,既完成了(函数既定的计算任务)函数相关的功能,在完成函数相关功能的时候,你这个函数访问了外部变量,尤其是对外部的数据进行了写操作。
比如在函数内部用到了外面的列表,在这里面还往列表里面加了个元素。这个时候修改了全局变量,造成外部环境发生了改变。这种就叫做函数的副作用。四、Python中的内置函数
内置函数:https:docs。python。orgzhcn3。7libraryfunctions。html
Python中的内置函数包含的不仅仅是内置函数还有很多的内置类型。
虽然内置类型是个类,不是函数。Python官方也把内置类型归纳在内置函数里面,把它称为内置函数。
str()底层是个类,但是Python官方是把它归纳在内置函数里面的。
不管什么时候调用内置函数,内置函数返回的结果只跟传入的参数相关,任何时候传进去的参数是一样的,那么内置函数返回的结果都是一样的。
内置函数是没有副作用的,全部是属于纯函数的一种,都是属于纯函数。
str()不是个函数,其实是个类。虽然算个内置函数,但是不能称为纯函数。
美国联邦航空管理局继续评估波音737MAX客机,未发现系统性感谢IT之家网友天合联盟的线索投递!IT之家3月13日消息美国当时时间3月12日,美国联邦航空管理局(FAA)代理行政官丹尼尔(DanielK。Elwell)在一份声明中……
小班美术活动美丽的蘑菇伞活动反思此活动来源于小班主题《下雨的日子》,这段时间孩子们正在进行这个主题活动也有相关的前期经验。首先我看了目标知道画面的排列要有大有小,使得画面丰富、布局合理,我便考虑怎么样来落实这……
英国民航局禁止波音737MAX客机在英国领空范围内运营IT之家3月12日消息据BBC报道,英国民航局已禁止波音737MAX在英国领空范围内运营。英国民航局的一份声明称,英国民航局一直在密切关注此次事件,然而,由于目前没有能够……
我家门前的海第二课时教学设计教材简析:《我家门前的海》主要写我家门前的海像一面大玻璃镜,之后作者又将天空想象成一个倒过来的大海;接着写大海给了我无尽的遐思;最后写笑是海的声韵。它篇幅短小,语言优美,……
LOL官方发布2018年大事件回顾iG夺冠压轴IT之家1月1日消息今天凌晨,英雄联盟官方发布2018年大事件回顾,包括去年一整年英雄联盟的游戏内容、活动、电竞赛事等等。《英雄联盟》2018官方回顾:视频作为国内……
LOL主播大司马道歉承认故意掉分黄金打不过,只能打白银IT之家12月28日消息大司马(芜湖大司马,英雄联盟游戏主播)我想玩英雄联盟、看直播的小伙伴都不陌生。而马老师(大司马的别称)的不解释连招也让许多人印象深刻。其实我一直认为马老……
LOLiG夺冠文章被做成高三阅读理解还有点难iT之家12月27日消息在11月3日韩国仁川举行的英雄联盟S8全球总决赛上,中国战队iG以3:0大比分拿下FNC获得本届英雄联盟全球总决赛冠军。在此前的半决赛上,iG赢下……
B站宣布与超电文化签署协议,收购其主要股份7月29日下午消息,近日,哔哩哔哩(以下简称B站)宣布与超电文化签署协议,收购其多数股权,以此拓展商业化能力。根据官网介绍,上海超电文化传播有限公司提供文娱线下票务及演出……
幼儿园健康有趣的小鼻子教案活动目标1、喜欢观察不同的鼻子,初步懂得爱护鼻子的方法。2、了解人的鼻子不同的形状特征。3、愿意与同伴分享自己的发现。活动准备各种鼻子图片,幼儿课……
幼儿园教案大全拼音ong幼儿园教案大全拼音ong汉语拼音angengingong第一课时学会后鼻韵母ang、eng、ing、ong和整体认读音节yng,读准音,认清形,并能正确地进行……
认识长方形,正方形和圆教学实录与评析教材:苏教版国标本小学数学一年级(下)认识图形第一课时P4042内容。教学过程:一、创设情境,导入新课师:同学们都玩过搭积木的游戏,今天,朱老师带领同学们去参……
微信群聊现已上线接龙表格功能IT之家10月17日消息今日,有媒体报道称,微信已上线接龙功能,目前仅针对群聊开放。经测试,在iOSv7。0。8版本(最新版)的微信中,微信群聊已上线接龙功能。但在And……
妈妈的手阅读以及答案妈妈的手琦君忙完了一天的家务,感到手膀一阵阵的酸痛,靠在椅子里,一边看报,一边用右手捶着自己的左肩膀。儿子就坐在我身边,他全神貫注在电视的荧光幕上,何曾注意到我。我……
幼儿园小班小池塘教案大自然,是一个学习的宝库。小班小池塘的教学设计,既要使学生把学到的知识巩固、消化,又要做好拓宽了学生的学习空间。下面是小编整理的幼儿园小班小池塘教案,欢迎查看,希望帮助到大家。……
邵火焰学扎纸马的故事纸马爷从十二岁开始学扎纸马,这一扎就是六十多年。纸马爷一生扎得最好的纸马,是他去世前半年扎的一座都市花园,看过的人都说,那简直就是黄州城都市花园小区的浓缩版,黄州城都市花……
变幻的近义词反义词及造句遗憾的是,商界的变幻无常注定了你所看到的一切mdash;mdash;公司稳定的未来mdash;mdash;只是一个幻影罢了。下面是小编精选整理的变幻的近义词反义词及造句,供您参……
二年级下册小小兵的教学设计单元目标:1、感受、体验进行曲的特点,学习用坚定有力的声音演唱歌曲,能准确的唱准符点音符,通过学习的过程,对我国的人民军队有一个初步的了解。2、同学通过欣赏和尝试用……
关于整式的除法教学设计教学目标经历探索整式除法运算法则的过程,会进行简单的整式除法运算(只要求单项式除以单项式,并且结果都是整式),培养学生独立思考、集体协作的能力。理解整式除法的算理,……
追求该怎么造句1。道德准则,只有当它们被学生自己追求、获得和亲身体验过的时候,只有当它们变成学生独立的个人信念的时候,才能真正成为学生的精神财富。苏霍姆林斯基2。追求理想是一个人进行自……
角的概念推广4。1(第二课时)教学目的:1巩固角的形成,正角、负角、零角等概念,熟练掌握掌握所有与角终边相同的角(包括角)、象限角、区间角、终边在坐标轴上的角的表示方法;……
有关中国古典名著的歇后语歇后语是中国劳动人民自古以来在生活实践中创造的一种特殊语言形式,是一种短小、风趣、形象的语句。它由前后两部分组成:前一部分起引子作用,像谜面,后一部分起后衬的作用,像谜底,十分……
超然台记阅读答案导语:这台虽然高,但却非常安隐;这台上居室幽深,却又明亮,夏凉冬暖,雨落雪飞的早晨。以下是小编为大家分享的超然台记阅读答案,欢迎借鉴!超然台记凡物皆有可观。苟有可乐……
水边的文字屋阅读答案加强修养,在书中飞翔;提升气质,在书中寻觅;真知灼见,在书中寻找;书是个宝,欲知什么翻书就知道。下面是小编为你带来的水边的文字屋阅读答案,希望对你有所帮助。小时候在田野上……
六年级数学上册分数乘法练习课导学案尚美课堂教学模式数学五段教学导学案年级六年级备课教师教学课题分数乘法练习课教学内容分数乘整数,整数乘分数,分数乘分数的练习教学目标1。掌握分数乘法的意义和计算……