• 浅析Python匿名函数


    我们知道,Python中通过def关键字来定义一个函数,函数的定义形式如下:

    def fcn(param):
        pass

    fcn代表函数名称,param表示函数的参数。

    这样定义函数的方式被称为显示定义函数,可以直接使用函数名进行调用。

    fcn(input_param)

    除上述显示定义函数外,Python也像其它高级语言一样对匿名函数提供了支持。

    匿名函数,顾名思义就是不需要显示的指定函数名称,使用lambda关键字来创建一个匿名函数,语法形式如下:

    power = lambda n : n**n
    | | | |
    ① ② ③ ④

    ① power:代表函数名,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量

    ② lambda:关键字,类似于def,代表这是一个匿名函数

    ③ 代表匿名函数的参数

    ④ 代表匿名函数返回值

    匿名函数特点:

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

    有些函数在代码中只用一次,而且函数体比较简单,使用匿名函数可以减少代码量,看起来比较"优雅“。

    用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突。此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数,如:

    >>> power = lambda n : n**n
    >>> power
    <function <lambda> at 0x0000000005015AF8>
    >>> power(6)
    46656

    匿名函数也可以作为函数返回值返回,如:

    def build(x, y):
        return lambda: x * x + y * y

    匿名函数使用:

    匿名函数主要和其他函数联合使用,比如map函数一起使用

    map函数

    map函数接收两个参数,一个是函数,一个是可迭代对象Iterable,map函数将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

    示例如下:

    >>> L = [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> lam = map(lambda x: x * x, L)
    >>> lam
    <map object at 0x00000000049AF148>
    >>> list(lam)
    [1, 4, 9, 16, 25, 36, 49, 64, 81]
  • 相关阅读:
    Github
    Vocabulary in Computer
    js中三种定义变量的方式const, var, let的区别
    Node.js-1
    JSON_in_js
    JSON快速入门
    Mysql tinyint长度为1时在java中被转化成boolean型
    maven上解决循环依赖、又不想新加第三模块的方法
    关于springboot和tomcat的服务能力做下简单的测试
    tomcat各个端口的作用
  • 原文地址:https://www.cnblogs.com/053179hu/p/14173394.html
Copyright © 2020-2023  润新知