python函数式编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python函数式编程相关的知识,希望对你有一定的参考价值。

什么是函数式编程?

      函数式编程(functional programming)是一种编程范式,也就是如何编写程序的方法论。目前我们所熟知的是命令式编程,这里的命令式编程语言泛指所有把修改变量的值当作最基本计算方式的语言,函数式编程语言指把一个程序的输出定义为其输入的数学函数的语言,纯函数式编程没有内部状态的概念,也没有副作用。

 

函数式编程的特点

1、函数即对象

     函数可以直接赋给变量

 

2、有属性和方法

>>> my_sum = sum
>>> sum([1,2,3])
6
>>> my_sum([1,2,3])
6
>>> dir(my_sum)
[__call__, __class__, __cmp__, __delattr__, __doc__, __eq__, __format__, __ge__, __getattribute__, __gt__, __hash__, __init__, __le__, __lt__, __module__, __name__, __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __self__, __setattr__, __sizeof__, __str__, __subclasshook__]
>>> my_sum.__name__
sum

 

3、函数可以做参数

>>> def f(a,b):
...     return a + b
... 
>>> def f1(func,a,b):
...     return func(a,b)
... 
>>> f1(f,1,3)
4

 

函数式编程和命令式编程的区别

目标:分别使用函数式编程和命令式编程实现 f(a,b,c,d) = (a+b)*c-d

命令式编程:

def f1(a,b,c,d):
    e = a + b
    f = e * c
    g = f - d
    return g

#命令式编程实现
ret = f1(a,b,c,d)

函数是实现:

def f_add(a,b):
    return a + b

def f_sub(a,b):
    return a - b
 
def f_multi(a,b):
    return a * b

#函数式编程实现
ret = f_sub(f_multi(f_add(a,b),c),d)

 


以上是关于python函数式编程的主要内容,如果未能解决你的问题,请参考以下文章

写 Python 代码不可不知的函数式编程技术

函数式编程/命令式编程

python_函数式编程

《On Java 8》中文版 第十三章 函数式编程

python之函数式编程

Python进阶学习——函数式编程