最新公告
  • 欢迎您光临网站无忧模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python中lambda表达式的优缺点及使用场景

    正文概述    2020-04-09   414

    Python中lambda表达式的优缺点及使用场景

    lambda表达式是什么?

    lambda 表达式是 Python 中创建匿名函数的一个特殊语法. 或称 lambda 语法本身为 lambda 表达式,而它返回的函数我称之为 lambda 函数。或者称为匿名函数。

    Python 的 lambda 表达式允许在一行代码中创建一个函数并传递。

    看下面的代码:

    website = ["www.pythontab.com", "bbs.pythontab.com", "docs.pythontab.com"]
    def wordCount(string):
        return len(string)
    siteNameLength = map(wordCount, website)
    print(siteNameLength)

    结果

    [17, 17, 18]

    上面的代码可以转化为 lambda 表达式表示:

    website = ["www.pythontab.com", "bbs.pythontab.com", "docs.pythontab.com"]
    siteNameLength = map(lambda string: len(string), website)
    print(siteNameLength)

    结果

    [17, 17, 18]

    lambda 表达式仅仅是创建函数的一个特殊方法。 它们只包含一条语句, 并自动返回这条语句的结果。

    当经验丰富的 Python 程序员看到一个lambda 表达式时,他们知道他们正在使用一个仅在一个地方有效的函数, 并且只做一件事情。

    lamda 的优缺点

    从上面的例子可以看出lambda 表达式可以写出非常简练的代码,但是缺点也非常明显:难于理解,降低了可读性和性能。特别是对于 Python 新手。

    如下面的lambda表达式:

    lambda_list = lambda n: lambda_list(n-1) + (lambda x: x * (n-1),) if n else ()

    很难短时间明白代码的含义。

    lamda缺点:

    对很多 Python 程序员来说, lambda 表达式是一种古怪而又陌生的语法

    lambda 函数本身缺少名称和文档, 意味着了解它们功能的唯一方式就是读代码

    lambda 表达式只能包含一条语句, 因此某些提高可读性的语言功能, 如元组拆包, 不能与它们一起使用

    lambda 函数通常可以被替换为标准库中已存在的函数或 Python 内置的函数

    lamda优点:

    代码简洁

    不增加额外变量

    lambda 表达式与命名函数的主要不同点:

    可以立刻传递(无需变量)

    在内部只能包含一行代码

    自动返回结果

    既没有文档字符串, 也没有名称

    lambda 使用场景

    下面的场景是比较适合使用 lambda 表达式的:

    你所要做的操作是不重要的: 函数不值得一个名称

    使用 lambda 表达式比你所能想到的函数名称让代码更容易理解

    你很确定还没有一个函数能满足你的需求

    你团队的每个人都了解 lambda 表达式, 并且都同意使用它们

    总结

    不提倡使用lambda, 除非你知道自己在干什么。在团队开发中, 一个良好易读的代码是非常重要的,有助于提升团队协同开发效率,减少沟通和维护成本。


    下载网 » Python中lambda表达式的优缺点及使用场景

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元