zoukankan      html  css  js  c++  java
  • python def和lambda的一点心得

    原文:http://www.cnpythoner.com/post/140.html

    python defpython lambda 这2个有相似点也有不同点,今天给大家分享下自己的心得吧。
    先说说2个的相似点: 这两个很重要的相似点就是都可以定义一些固定的方法或者是流程,供给程序来调用,比如我们要定义一个变量加2的方法。
    首先看python def吧。
     

    def info(x):
        return x + 2

    a = info(1)
    print a
     

     再看下python lambda
    f = lambda x : x+2
    a = f(1)
    print a

    上面2种方式输出的结果都是3,如果你要完成一些固定的流程的话,上面两种你都可以任意选择。

    上面说到了相同点,现在说说不同点吧。
    它们的主要不同点是python def 是语句而python lambda是表达式,理解这点对你了解它们很重要。 下面看看他们的应用吧。
    首先在python 里面语句是可以嵌套的,比如你需要根据某个条件来定义方法话,那只能用def了。
     你用lambda就会报错了。

    a = 2

    if a > 1:
        def info():
            print 'haha'
    else:
        def test():
            print 'test'
     

    而有的时候你需要在python 表达式里操作的时候,那需要用到表达式嵌套,这个时候python def就不能得到你想要的结果,那只能用python lambda
    下面给个例子:
    g = lambda x : x+2
    info = [g(x) for x in range(10)]
    print info

    通过上面的例子,希望你能很好的理解python def和lambda的相同和不同点。如果你对python函数感兴趣的话,可以看看: python 函数返回值python 函数参数

  • 相关阅读:
    不同的二叉搜索树
    二叉树展开为链表
    二叉树的中序遍历
    二叉树的直径
    树系列之对称二叉树
    从前序与中序遍历序列构造二叉树
    字符串反转
    旋转图像---二维矩阵
    双指针---最接近的三数之和
    Egret 小游戏实战教程 跳一跳(搬运二)
  • 原文地址:https://www.cnblogs.com/klobohyz/p/2298210.html
Copyright © 2011-2022 走看看