目录
三、函数式编程
1、函数式编程
函数式编程允许函数本身作为参数,并且返回一个函数。
1.1高阶函数
1.1.1基本理解
变量可以指向函数,并且函数名也是变量。
1.1.2什么是高阶函数
一个函数接受另一个函数作为参数
1.1.3map()、reduce()
map(函数,Iterable) :将传入的函数依次作用于序列的每个元素上,将新Iterator返回。
Iterator是惰性序列,通过list()把序列计算出来,返回序列。
reduce(函数,序列),reduce将结果不断与下一个元素做计算。
1.1.4filter()
filter(函数,序列)将传入的函数作用于序列,根据结果True或False丢弃元素起到过滤的作用。
1.1.5sorted()
排序算法,通过映射函数来排序。
传入一个参
传入两个参数
1.2返回函数
通过闭包暂缓返回结果
闭包:
nonlocal:
内层函数对外层函数的变量或函数可读,当对它们赋值时,必须声明nonlocal
1.3匿名函数
关键词lambda表示匿名函数,:前x表示参数。匿名函数只许有一个表达式,且返回的就是表达式的结果。
1.4装饰器
装饰器(decorator):代码运行期间动态增加功能。
1.5偏函数
用functools.partial创建偏函数,即为函数设定默认值,并给返回新函数。
创建偏函数时可以接受三个参数:对象,*args,**kw。
2、模块
2.1作用域
正常的变量和函数名是公开的,可被引用。
__x__时特殊变量,可被引用。
_x或__x是非公开的变量,不可以被引用。
2.2导入第三方模块
具体可参考下面链接安装第三方模块 - 廖雪峰的官方网站