zoukankan      html  css  js  c++  java
  • 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)
  • 相关阅读:
    Linux命令行常用符号
    IP地址详解
    黑帽子白帽子问题
    点香测算时间
    Linux系统中的压缩和打包
    Python冒泡排序
    Python选择排序
    linux 文件三大特殊权限(SUID SGID SBIT)
    预处理器之头文件嵌套包含最大层数
    一不小心就对未分配的内存进行访问和修改
  • 原文地址:https://www.cnblogs.com/max-hu/p/6218142.html
Copyright © 2011-2022 走看看