码迷,mamicode.com
首页 > 编程语言 > 详细

python高阶函数

时间:2017-07-22 23:48:06      阅读:257      评论:0      收藏:0      [点我收藏+]

标签:style   error   ble   ret   line   erro   err   log   blog   

什么是高阶函数?根据例子一步步来

变量可以指向函数

以python内置的求绝对值的函数abs为例,我们可以有下面几种调用方法

>>> abs(-10)
10

但是如果只写abs呢?

>>> abs
<built-in function abs>

abs(-10)是函数的调用,abs是函数本身

我们知道结果可以赋值给变量,函数是否可以呢?

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

结论:函数也可以赋值给变量,即变量可以指向函数

用这个变量调用函数试一试

>>> y(-10)
10

成功了!!!abs(-10)和y(-10)一毛一样

函数名也是变量

abs()函数可以看作abs这个变量指向了一个可以求绝对值的函数

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

abs这个变量指向了10,再调用abs(-10)就会报错,说明abs确实是个变量,如果想要使用abs正常的功能,只能重启python交互环境。

什么才是高阶函数呢

既然变量可以指向函数,函数又能接收变量,那么是不是就可以把函数当作变量传入另一个函数呢

 

>>> def add(x, y, f):
return f(x) + f(y)
>>> add(-2, 3, abs)
5

  

把函数作为参数传入,这样的函数称为高阶函数

 

python高阶函数

标签:style   error   ble   ret   line   erro   err   log   blog   

原文地址:http://www.cnblogs.com/mingo724/p/7223106.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!