标签: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
把函数作为参数传入,这样的函数称为高阶函数
标签:style error ble ret line erro err log blog
原文地址:http://www.cnblogs.com/mingo724/p/7223106.html