Python学习笔记--4、函数式编程

1、高阶函数

   变量可以指向函数、函数名也可以被赋值为变量、也可以把一个函数当做参数传入下去。

(1)map/reduce

到底什么是map呢?下面用一段程序代码直接说明:

 什么是reduce?下面同样用一段代码直接进行说明:

下面这一段就是reduce的用法,每次接收两个参数到f 中进行调用,随后,将得到的结果,继续加上下一个参数进行作用。

reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)

下面举一个例子:

(2)filter 

Python 内建的filter用于过滤序列,和map()类似,同样接收一个函数和一个序列,然后将filter中传入的数值作用给每个元素,然后根据返回的数值,判断是保留还是丢弃该元素。

  

(3)sorted

2、返回函数

(1)将函数当作变量进行返回:

(2)闭包

如何解决这个问题呢?

如何理解这个闭包这个概念呢??????

 实际上,我们调用这个count 这个函数,我们使得这个f1、f2、f3,这三个变量东西是什么呢??? 首先 count 这个函数返回的是一个list 列表的形式,然后列表中的内容是什么呢???    再看 fs.append(f) ,  也就是f  这个东西:对于第一种情况,不写成闭包的形式的话。

   虽然,我们这样调用是没错,但是实际上,我们调用的函数f的返回值并没有被计算出来,看一下,如果写成下面的样子:

这样,返回的f1 和f2 f3 就不是函数了,而是直接是一个数值。也就是说, 调用fas.append的时候,就已经计算了返回值

再看下面 的这代码:

这个就很明晰那了,我虽然调用了这个f(i) 这个函数, 而且他页把这个i 的变量传下去了,他的返回值是它的下一级的一个函数,所以(已经把这个传入下去的变量的数值记录并且,记录再这个函数g 当中去了)

3、匿名函数

不废话了,这东西不复杂,用法就像教程上的东西:

4、装饰器

  装饰一个函数的用法,用法如下;

5、偏函数

猜你喜欢

转载自blog.csdn.net/weixin_42066185/article/details/81736372