Flask接口签名sign原理与实例代码浅析
313
2022-08-31
python基础(part17)--函数式编程
鄙人学习笔记 开发工具:Spyder
文章目录
函数式编程
举个例子1举个例子2举个例子3
函数作为参数
lambda表达式
举个例子1
内置高阶函数
filtermapsortedmax
函数作为返回值
函数式编程
定义
函数式编程可以用一系列函数解决问题。
说明
①函数可以赋值给变量,赋值后变量绑定函数。 ②允许将函数作为参数传入另一个函数。 ③允许函数返回一个函数。
高阶函数
高阶函数是将函数作为参数或返回值的函数
举个例子1
看下面这段代码:
def fun01(): print("fun01执行")#将fun01方法赋值给变量a(并没有执行fun01)a = fun01
为了验证一下我们所说的言论,我们调用一下变量a, 间接执行函数fun01:
def fun01(): print("fun01执行")#将fun01方法赋值给变量a(并没有执行fun01)a = fun01a()
举个例子2
看下面这段代码:
def fun01(): print("fun01执行")def fun02(func): print("fun02执行") func()
我们看到函数fun02有一个参数func, 这个参数可以被调用。对于fun02的定义者而言,并不需要知道func的具体逻辑是什么。
举个例子3
我有下面这个列表:
这时,我们发现大量代码是重复的,只不过有些if条件不一样。对于相同的代码,我们要提取; 对于不同的代码,我们要封装。
首先,我们提取相同点:
备注:函数式编程的这种思想,也影射出了面向对象的分而治之的思想。
运行一下代码:
函数作为参数
lambda表达式
定义
lambda表达式是一种匿名方法。
作用
①lambda表达式作为参数传递时,语法简洁,优雅,代码可读性强。 ②lambda表达式可随时创建和销毁,减少程序耦合度。
语法
定义lambda表达式:
变量 = lambda 形参:方法体
调用lambda表达式:
变量(实参)
说明
①形参没有可以不填 ②方法体只能有一条语句,且不支持赋值语句。
举个例子1
首先我们写几个函数,并把它们分别改为lambda表达式:
①不带参数
②带参数
③有返回值
为什么要改写成lambda表达式? 原因就是,lambda表达式,没有名字(所以我们有时候也称其为匿名方法)它可以使我们的程序更加简洁;且,当我们只想把一个方法作为参数进行传递,但是不希望直接调用这个方法时(这个方法活着的价值就是传参),我们就可以用lambda表达式。
最后备注:如果我们看见一大段相似的代码,但是其中的计算方式(算法)不一样。我们就应该将算法提取出去(lambda表达式),将共性保留下来(保留成静态函数)。
内置高阶函数
高阶函数,即将函数作为参数或返回值的函数。 对于一些内置的高阶函数,在下面的笔记中,每一个内置高阶函数我都举个例子,大概就能明白了,不明白,请自行看文档/百度。
filter
举个例子
先定义Enemy类和创建Enemy对象列表(这些class和列表在下面的内置高阶函数的例子中也会用到):
map
举个例子
映射:
sorted
举个例子
②升序排序(需要用变量接收返回值)
max
举个例子
函数作为返回值
未完待续,暂时不想写了。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~