python def和lambda的一點心得

來源:互聯網
上載者:User

原文: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 函數參數

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.