python def和lambda的應用

來源:互聯網
上載者:User

python def和python 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 函數參數

原創文章請註明轉載自老王python,本文地址:http://www.cnpythoner.com/post/140.html

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.