Python函数式编程之高阶函数(一)

 该篇中主要介绍什么是高阶函数,高阶函数的用法以及几个常见的内置的高阶函数。

什么是高阶函数?

  高阶函数:一个函数可以作为参数传给另外一个函数,或者一个函数的返回值为另外一个函数(若返回值为该函数本身,则为递归),满足其一则为高阶函数。

 

通过了解以下两个概念来理解高阶函数:

A.变量指向函数:函数本身也可以赋值给变量,即:变量可以指向函数

例如:python内置函数求和函数sum:

>>sum([11,22])>>33#如果我将函数结果赋值变量>>sum1=sum([11,22])>>print(sum1)>>33#得到结果也是33,如果此时直接输出sum呢>>print(sum)>><built-in function sum>#说明此时获取的是函数对象,那么此时如果直接将该对象赋值给变量>>sum2=sum>>print(sum2)>><built-in function sum>#此时会发现变量sum2已经指向了sum函数对象本身了,也就是说明sum2变量同样可以实现求和操作>>sum2([11,22])>>33

 

B.函数名也可以是变量:顾名思义,函数名也可以当做变量进行再次赋值;但是在编程中,都建议对变量名命名不能够使用其语言内置的保留字、关键字等;但是在python中,可以对其函数进行重新指向;

例如:同样以python内置函数为例:​​​​​​​

>>sum([10,20])>>30#如果将sum函数名进行作为变量重新赋值会出现什么情况呢?>>sum=20#如果此时继续调用sum进行求和会出现什么情况?>>sum([1,2])Traceback (most recent call last):  File "<stdin>", line 1, in <module>TypeError: 'int' object is not callable>>print(sum)>>20

结论:把sum指向20后,就无法通过sum([1,2])调用该函数了!因为sum这个变量已经不指向求和函数了!

当然实际代码绝对不能够这么写,这里为了说明函数名也是变量;如果需要回复sum函数,则重启python交互式环境;

 

C.1.高阶函数:参数为函数;​​​​​​​

#参数为函数def test1():    print("这是第一个函数")def test2(func):    func()    print("这是第二个函数")
test2(test1)#在这里小伙伴们有木有想到啥呀?#对了,是不是有点装饰器的感觉在里面;后面详细说明装饰器哦

2.高阶函数:返回值为函数;​​​​​​​

#返回值为函数def test1():    print("这是第一个函数")def test2(func):    print("这是第二个函数")    return test1res=test2(test1)res()#输出结果小伙伴们可以猜一下哦?#第七行会输出这是第二个函数#第八行会输出这是第一个函数

编写高阶函数的主要目的:就是让函数的参数能够接收别的函数。

常用高阶函数的具体操作请查看Python函数式编程之高阶函数(二)

需要了解更多可关注以下公众号,每日更新一篇测试文章

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zemuerqi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值