九、函数(二)
1、高级函数
- 定义:接收函数作为参数,或者将函数作为返回值返回的函数,我们就叫它高级函数
- 1、将函数作为返回值的高级函数,如递归函数
- 2、将函数作为参数的高级函数
2、闭包
- 定义:将函数作为返回值的高级函数我们也称之为闭包
- 好处:
o 通过闭包,我们可以创建一些只有当前函数才能访问的变量,不易被修改
o 可以将一些私有的数据藏到闭包中 - 条件:
o 函数嵌套
o 将内部函数作为返回值返回
o 内部函数必须用到外部函数的变量
3、命名空间
- 定义:命名空间包含当前作用域的所有信息,包括变量,函数,初始化信息等
- 用法:locals()用来获取当前作用域的命名空间,并返回一个字典
4、装饰器
4.1 装饰器的引入
- 背景:我们在修改代码时如果采取直接修改函数中的代码来完成需求,可以,但会产生以下一些问题:
o 如果需修改的函数过多,则修改起来会比较麻烦
o 不方便后期维护
o 违反了开闭原则(ocp)(ocp指的是程序设计要求开放对程序的扩展,关闭对程序的修改) - 为了解决上述开发中遇到的问题,我们引入装饰器这一概念
4.2 装饰器的使用
- 装饰器的作用:通过装饰器,我们可以在不修改原来函数的情况下对函数进行扩展
- 在开发中我们都是用装饰器来扩展函数的功能的
- 正常的装饰器用法应该如下,上面的是原理演示
感想:这两章函数的总结,到了Python例最重要也是以后运用最多的部分;虽然举的例子都相对比较简单,但只有真的懂了这些函数方法的原理,之后的高级编程运用才能灵活,才能看懂,所以我自己也要经常抽出时间来复习这一块