python中的函数式编程

1、什么是函数式编程?

  • 函数:function,高级语言基本都有这个概念(本人目前学习过Fortran,c,c++,python,这些语言都有函数)
  • 函数式:functional,一种编程范式
  • 函数式编程是一种抽象计算的编程模式
  • 函数≠函数式,就好比:计算≠计算机一样

不同语言的抽象层次不同

2、函数式编程的特点:

  • 把计算视为函数而非指令
  • 纯函数式编程:不需要变量,没有副作用,测试简单
  • 支持高阶函数,代码简洁

3、Python支持的函数式编程

  • 不是纯函数式编程:允许有变量
  • 支持高阶函数:函数也可以作为变量传入
  • 支持闭包:有了闭包就能返回函数
  • 有限度地支持匿名函数

4、python中的高阶函数

首先来看几个例子:

在python中变量可以指向函数:

例如python中的内置函数:abs

如果用f变量去指向abs,则有f(-20)=20

函数名其实就是指向函数的变量:

例如可以让python中的内置函数abs的函数名abs指向len函数(len函数也是内置函数)

即abs = len

那么abs(-10)会报错

而abs([1,2,3])会返回3

高阶函数的概念:能接受函数做参数的函数

  • 变量可以指向函数
  • 函数的参数可以接收变量
  • 一个函数可以接收另一个函数作为参数
  • 能接收函数作参数的函数就是高阶函数

一个例子:接收abs函数

  • 定义一个函数,接收x,y,f三个参数
  • 其中x,y是数值,f是函数
  • def add(x,y,f)
  • return f(x)+f(y)

而在Fortran中,(我是水利水电专业的工科生,平时用得最多的还是Fortran),其实也能把函数作为参数传递的,但过程说实话比较麻烦:(在Fortran中,abs函数严格意义上是个求模函数,默认的返回值类型是real,一般abs(x)的返回值类型是x的类型,x是complex类型除外)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值