Python 函数式编程(一):高阶函数/函数名变量

      函数是面向过程的程序设计的基本单元。

      函数式编程就是一种抽象程度很高的编程范式。 纯粹的函数式编程语言编写的函数没有变量。 因此, 任意一个函数, 只要输入是确定的, 输出就是确定的, 这种纯函数我们称之为没有副作用。 而允许使用变量的程序设计语言, 由于函数内部的变量状态不确定, 同样的输入, 可能得到不同的输出, 因此, 这种函数是有副作用的。

      函数式编程的一个特点就是, 允许把函数本身作为参数传入另一个函数, 还允许返回一个函数!

 

高阶函数

变量可以指向函数

>> print(abs(-10))
10
>> print(abs)
<built-in function abs>

可以看到,print(abs) Python中这样居然是不报错

把函数本身赋值给变量

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

      如果一个变量指向了一个函数,那么,可以通过该变量来调用这个函数
 

>>f = abs
>>print(f(-10))

10

 

函数名也是变量

      函数名其实就是指向函数的变量! 对于 abs()这个函数, 完全可以把函数名 abs 看成变量, 它指向一个可以计算绝对值的函数

      如果把 abs 指向其他对象, 示例如下:

abs = 10
print(abs(-10))

       把 abs 指向 10 后, 就无法通过 abs(-10)调用该函数了! 因为 abs 这个变量已经不指向求绝对值函数了!

 

高阶函数

      既然变量可以指向函数, 函数的参数能接收变量, 那么一个函数就可以接收另一个函数作为参数, 这种函数就称之为高阶函数

def add(x,y,f):
	return f(x)+f(y)

print(add(-5,6,abs))

 

 

把函数作为参数传入, 这样的函数称为高阶函数,函数式编程就是指这种高度抽象的编程范式。

Python 内建的高阶函数有 map、 reduce、 filter、 sorted。
 

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值