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 函数参数

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值