zoukankan      html  css  js  c++  java
  • Python 函数式编程介绍

    带着函数的函数,真说是神奇的很

    函数式编程

     **********

    map(函数名,List):函数带一个参数

    def f(x):
    return x*x
    print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
    输出结果:

    [1, 4, 9, 10, 25, 36, 49, 64, 81]

    **********
    reduce(函数名,List):函数带俩参数
    reduce(函数名,List,初始值)
    def f(x, y):
    return x + y
    print reduce(f, [1, 3, 5, 7, 9])

    输出结果:

    [25]

    ********** 

    def f(x, y):
    return x + y
    print reduce(f, [1, 3, 5, 7, 9],10)

    输出结果:

    [35]

     **********

    strip()默认删除空白符(包括' ', ' ', ' ', ' '),如下:
    a=' 123 '
    a.strip()
    结果:'123'

     ************

    filter(函数名,List)这个函数 f 的作用是对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新list。
    首先,要编写一个判断奇数的函数:

    def is_odd(x):
    return x % 2 == 1
    然后,利用filter()过滤掉偶数:

    filter(is_odd, [1, 4, 6, 7, 9, 12, 17])
    结果:[1, 7, 9, 17]

    **************

    sorted()函数可对list进行排序,从小到大

    sorted()也可以对字符串进行排序,字符串默认按照ASCII大小来比较

    sorted(List,函数名):可以实现自定义排序。对于sorted(x,y),如果 x 应该排在 y 的前面,返回 -1,如果 x 应该排在 y 的后面,返回 1。如果 x 和 y 相等,返回 0。

    **************
    函数可以返回函数值也可以返回函数名(return f()——return f)

    **************

    内层函数引用了外层函数的变量(参数也算变量),然后返回内层函数的情况,称为闭包(Closure)

    当内部参数发生改变,函数返回值也就变了。

    ************

    匿名函数 lambda  x:f(x)

    例: lambda x: x * x 实际上就是:

    def f(x):
        return x * x

    关键字lambda 表示匿名函数,冒号前面的 x 表示函数参数。

    匿名函数有个限制,就是只能有一个表达式,不写return,返回值就是该表达式的结果。

    使用匿名函数,可以不必定义函数名,直接创建一个函数对象,很多时候可以简化代码。但没法提高效率。

    ************

     函数名.__name__  返回函数名

    比如高阶函数调用函数作为参数,可以用.__name__显示调用的函数名

    ************

    装饰函数:(这个真的很神奇,我都没想到一个圈A竟然这么有用)

    在指定函数上写一个  @XXXXX 简化代码,实现相关功能

    @log——打印日志

    @performance——检测性能

    @transaction——数据库事务

    @post('/register/')——URL路由

  • 相关阅读:
    帆软 控件内容 清除
    Spring MVC 拦截器
    jsp文件调用本地文件的方法(Tomcat server.xml 设置虚拟目录)
    Junit 4 测试中使用定时任务操作
    通过URL传递PDF名称参数显示PDF
    SpringMVC 无法访问到指定jsp页面可能的原因
    优化小技巧——复杂属性对象的read模式
    [as部落首发]网页游戏开发中的一些小技巧
    Flash Platform 游戏开发入门
    理解 Flash 中的 ActionScript 3 调试
  • 原文地址:https://www.cnblogs.com/6luv-ml/p/7285894.html
Copyright © 2011-2022 走看看