python高阶函数指的就是将函数作为参数,或者是返回值为函数对象的函数。那么高阶函数可以自己去定义,也可以去使用已经存在的高阶函数。下面就是会来详细介绍一下python高阶函数的定义方式,以及一些常用的高阶函数,想了解和学习的小伙伴就往下看看吧。
一、自定义
python高阶函数其一实现方法就是将一个函数作为参数,那么在调用这个函数时,就需要把函数对象作为参数放在括号之中。如果这两个函数都有参数存在,那么参数的类型以及数量需要是一致的,代码示例如下所示:
def fun(a): return a*a def fun1(a,b,c): return a(b)+a(c) print(fun1(fun(),1,5)) 26
在上面的代码示例之中是将函数fun,作为另外一个函数fun1调用时的参数给传递了进去。那么在后面有分别传递了1和5两个数字进去,这样就是会先将函数fun1执行后得到它的返回值。用其返回值分别乘以b和c两个参数,再将得到的结果返回。
另外一种方式就是将函数作为返回值了,将函数作为返回值的话就是得在一个函数内再定义一个函数才可以,代码如下所示:
def fun(a): def fun2(b): return a*b return fun2()
二、内置高阶函数
python最常使用的内置高阶函数分别为map、filter、reduce这三个,并且这三个函数可以接收的参数都是函数对象以及可迭代对象两个。而map函数的作用就是将对象中所有元素取出来作为参数函数的参数执行,然后再返回成序列,代码如下:
array = [1,4,7] a = map(lambda x:x+1,array)
filter函数的作用同样是把对象中元素取出来执行参数函数,不过它只会返回值为True的对象,示例如下:
array = [1,7] a = filter(lambda x:x%2==0,array)
而reduce函数则是会将对象中前两个元素取出来执行参数函数,然后用二者返回的对象再加上后一个取出来元素再次执行函数,示例如下:
from functools import reduce array = [1,2,3,5] result = reduce(lambda x,y:x+y,array)