网站建设的定位是什么,利用网站做蜘蛛池,怎么进网站,ps网页模板高阶函数英文叫Higher-order function。什么是高阶函数#xff1f;我们以实际代码为例子#xff0c;一步一步深入概念。变量可以指向函数以Python内置的求绝对值的函数abs()为例#xff0c;调用该函数用以下代码#xff1a; abs(-10)10但是#xff0c;如果只写…高阶函数英文叫Higher-order function。什么是高阶函数我们以实际代码为例子一步一步深入概念。变量可以指向函数以Python内置的求绝对值的函数abs()为例调用该函数用以下代码 abs(-10)10但是如果只写abs呢 abs可见abs(-10)是函数调用而abs是函数本身。要获得函数调用结果我们可以把结果赋值给变量 x abs(-10) x10但是如果把函数本身赋值给变量呢 f abs f结论函数本身也可以赋值给变量即变量可以指向函数。如果一个变量指向了一个函数那么可否通过该变量来调用这个函数用代码验证一下 f abs f(-10)10成功说明变量f现在已经指向了abs函数本身。函数名也是变量那么函数名是什么呢函数名其实就是指向函数的变量对于abs()这个函数完全可以把函数名abs看成变量它指向一个可以计算绝对值的函数如果把abs指向其他对象会有什么情况发生 abs 10 abs(-10)Traceback (most recent call last):File , line 1, in TypeError: int object is not callable把abs指向10后就无法通过abs(-10)调用该函数了因为abs这个变量已经不指向求绝对值函数了当然实际代码绝对不能这么写这里是为了说明函数名也是变量。要恢复abs函数请重启Python交互环境。注由于abs函数实际上是定义在__builtin__模块中的所以要让修改abs变量的指向在其它模块也生效要用__builtin__.abs 10。传入函数既然变量可以指向函数函数的参数能接收变量那么一个函数就可以接收另一个函数作为参数这种函数就称之为高阶函数。一个最简单的高阶函数def add(x, y, f):return f(x) f(y)当我们调用add(-5, 6, abs)时参数xy和f分别接收-56和abs根据函数定义我们可以推导计算过程为x -5y 6f absf(x) f(y) abs(-5) abs(6) 11用代码验证一下 add(-5, 6, abs)11编写高阶函数就是让函数的参数能够接收别的函数。小结把函数作为参数传入这样的函数称为高阶函数函数式编程就是指这种高度抽象的编程范式。