• python 高阶函数


    变量可以指向函数:
    
    以Python内置的求绝对值的函数abs()为例,调用该函数用一下代码:
    
    print abs(-10)
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/cookbook/a13.py
    10
    
    [root@node01 python3]# python
    Python 2.7.3 (default, Jul 20 2017, 18:40:16) 
    [GCC 4.4.7 20120313 (Red Hat 4.4.7-18)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> abs
    <built-in function abs>
    >>> 
    
    可见,abs(-10)是函数调用,而abs 是函数本身。
    
    f=abs
    print f
    
    结论:函数本身可以赋值给变量,即:变量可以指向函数。
    
    如果一个变量指向了一个函数,那么,可否通过该变量来调用这个函数?
    
    >>> f = abs
    >>> f(-10)
    10
    成功!说明变量f现在已经指向了abs函数本身。
    
    
    
    函数名也是变量:
    
    那么函数是什么呢? 函数名其实就是指向函数的变量!
    
    
    传入参数:
    
    既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数
    
    一个简单的高阶函数:
    
    def f(a):
        return a+3
    def add(x,y,f):
        return f(x) +f(y)
    print add(1,2,f)
    
    C:Python27python.exe C:/Users/TLCB/PycharmProjects/untitled/mycompany/cookbook/a13.py
    9
    
    Python 内建了map()和reduce() 函数
    
    map()函数接收两个参数,一个是参数,一个是序列,map将传入的函数依次作用到序列的每个元素,并把结果作为新的list返回。
    
    举例说明:
    
    def f(x):
       return x * x
    print map(f,(1,2,3,4))
    
    map()传入的第一个参数是f,即函数对象本身。
    
    所以,map()作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算f(x)=x2
    
    >>> map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    ['1', '2', '3', '4', '5', '6', '7', '8', '9']
    
    

  • 相关阅读:
    start tag, end tag issues in IE7, particularly in xslt transformation
    用SandCastle为注释生成chm文档
    Firebug
    架构的重点
    Linux Shell常用技巧(十) 管道组合
    Linux JDK升级
    Linux Shell常用技巧(十二) Shell编程
    Packet Tracer 5.0实验(一) 交换机的基本配置与管理
    Linux Shell常用技巧(六) sort uniq tar split
    Linux Shell常用技巧(二) grep
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349457.html
Copyright © 2020-2023  润新知