从零开始学Python-Day25-高阶函数

Python零基础 木人张 3年前 (2020-03-30) 793次浏览 0个评论 扫描二维码
文章目录[隐藏]

Higher-order function,高阶函数。

变量可以指向函数

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

可以看到abs(10)是调用函数,直接输入abs则是函数本身。我们可以把函数计算结果赋值给变量,也可以把函数赋值给变量:

>>> x = abs(10)
>>> x
10
>>> f = abs
>>> f
<built-in function abs>
>>> f(10)
10

函数abs被赋予变量f,f就指向了函数,也可以像函数一样调用。

函数名也是变量

其实,可以把函数名当做指向函数的一个变量,想一想我们自己定义一个函数时,函数名是不是自己命名的,其实就是给这个变量赋值了。对于abs()这个函数,可以把abs看成一个变量,它指向了一个可以计算绝对值的函数,如果把abs指向其他对象会如何:

>>> abs = 10
>>> abs(-10)
Traceback (most recent call last):
  File "<pyshell#48>", line 1, in <module>
    abs(-10)
TypeError: 'int' object is not callable

abs指向10之后,就无法通过abs(-10)调用原本的计算绝对值函数了,当然实际使用中绝对不可以这样用,要恢复abs函数,重启交互环境即可

把函数作为参数传入

上面说了变量可以指向函数,函数参数可以接收变量,那么一个函数也可以作为参数传入另一个函数,这就叫做高阶函数!如下:

>>> def add(x,y,z):
	return z(x) + z(y)

>>> add(-5,5,abs)
10

木人张,版权所有丨如未注明 , 均为原创,禁止转载。
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址