一.高阶函数的说明
有两个条件:1.接受函数作为参数
2.将函数作为返回值
上面的箭头那里,是函数的引用,往回看
高阶函数的作用是:当我们使用一个函数作为参数时,实际上我们就是将指定的代码传递给目标函数
二. 匿名函数 lambda表达式
用来创建一些简单的函数,他是函数创建的另一种方式, 最大的好处是只调用一次
filter() 可以从序列中过滤出符合条件的元素, 保存到一个新的序列当中
参数: 1 , 函数 根据该函数来过滤序列(可迭代结构)
2, 需要过滤的序列(可迭代结构)
有返回值, 过滤后新的序列
语法: lambda 参数列表 : 返回值
也可以将匿名函数赋值给一个变量
匿名函数一般用来当做参数
排序 sort关键字 sorted()函数
key 关键字
三. 闭包
1… 通过闭包可以将不想让别人知道的变量放起来,不让别人访问
2. 将函数作为返回值返回,也是一个高阶函数
形成闭包的条件
1,函数嵌套
2.将内部函数作为返回值返回
3.内部函数必须使用到外部的变量
四. 装饰器的引入
我们可以通过修改函数中的代码来完成,但是会有一些问题
- 修改的函数很多
- 不方便后期的维护
- 会违反开闭原则(ocp),程序设计 要求对程序的扩展,但是要关闭对程序的修改
五. 装饰器的使用
start_end(old) 类似于这种函数,其实就是一个装饰器
通过装饰器可以在不修改原函数的情况下对函数进行扩展
在开发中,都是通过装饰器来扩展函数的功能