1.高阶函数
- 接受函数作为参数,或者将函数作为返回值返回的函数就是高阶函数
将一个指定列表中的偶数,保存到一个新的列表中
方法一:
方法二: - filter()
- 参数 1.函数,2。需要过滤的序列 返回值,过滤后新的序列(可迭代的序列)
- 匿名函数 lambda函数表达式
- lambda函数表达式就是专门用来创建一些简单的函数
- 语法: lambda 参数列表:返回值
2.闭包
- 将函数作为返回值也是高阶函数我们也称之为闭包
- 闭包的好处
。通过闭包可以创建一些只有当前函数能够访问的变量
。可以将一些私有的数据藏到闭包中 - 形成闭包的条件
。函数嵌套
。将内部函数作为返回值返回
3.装饰器的引入
- 我们可以直接通过 修改函数中代码来完成需求,但会产生以下一些问题
。如果修改的函数多,修改起来会比较麻烦
。不方便后期的维护
。这样做会违反开闭原则
。程序的设计,要求开发对程序的扩展,要关闭对程序的修改。
4.装饰器的使用
- 通过装饰器,可以在不修改原来函数的情况下对函数进行拓展(上述函数start_end就是装饰器)
- 在开发中,我们都是通过装饰器来拓展函数的功能
- 汉诺塔游戏,现在有ABC三根柱子。要求:将A柱所有的圆盘放到C柱。在移动的过程中可以借助B柱。并且规定大圆盘不能放小圆盘上面,每次只能移动一个盘子。用递归的方式来解决汉诺塔问题