python 函数式编程和高阶函数的概念

来源:互联网 发布:js调用css3动画 编辑:程序博客网 时间:2024/05/17 22:09

参考:

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819866394c3f9efcd1a454b2a8c57933e976445c0000

http://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819873910807d8c322ca74d269c9f80f747330a52000

#########################################3


函数是python内建支持的一种封装,通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计。

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


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

python对函数式编程提供部分支持。由于python允许使用变量,因此,python不是纯函数式编程语言


#############################################3


高阶函数(Higher-order function)


变量可以指向函数

以python内置的求绝对值的函数abs()为例:

abs(-10)absx=abs(-10)xf=absf



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


函数名也是变量

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



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

note:要恢复abs函数,需要重启python交互环境


传入函数

函数的参数能接收变量,而变量可以指向函数,所以一个函数可以接收另一个函数作为参数,这种函数就称为高阶函数:

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



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



0 0
原创粉丝点击