国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python 閉包的理解

Binguner / 1502人閱讀

摘要:中的閉包的概念,在我看來,就相當于在某個函數中又定義了一個或多個函數,內層函數定義了具體的實現方式,而外層返回的就是這個實現方式,但并沒有執行,除非外層函數調用的內層的實現方法被執行了。

Python中的閉包的概念, 在我看來, 就相當于在某個函數中又定義了一個或多個函數, 內層函數定義了具體的實現方式, 而外層返回的就是這個實現方式, 但并沒有執行, 除非外層函數調用的內層的實現方法被執行了。至于這個怎么執行, 看下面的例子就知道了

比如:

def sum_outer(x, y):
    def sum_in(z):
        return x + y - z;
    return sum_in #注意, 這里返回的不是sum_in() 只是sum_in的函數名
  

 m = sum_outer(3, 4)  #3, 4 分別對應x, y,這里的m返回的也只是函數sum_in的定義,
 print m(5) # m對應z, 這個時候才是真正sum_in執行的時候

看起來就像通過sum_outer 調用了內層的sum_in函數, 多了層代理

其中一種應用場景就是可以根據不同的參數,使用相同的實現去返回對應不同的結果,比如, 根據不同的配置獲取不同的數據庫連接, 或者要求在驗證字符串長度時, 可以根據不同的最大長度驗證(外層傳遞最大長度, 內層傳遞驗證的字符串)。

在抽象化一點, 外層定義了一個環境, 內層則是在該環境中的要做的事情, 但這個事情還沒做,
只是要做。當真正需要做的時候到這個環境中去做了就好了(外層的返回結果(m)執行內層的函數sum_in)

實際上, 直接給函數傳遞需要的所有參數, 直接返回結果, 如上面的sum_outer和sum_in, 直接通過

def sum(x,y,z):
    return x + y - z

不就結了嗎,為社么還要閉包這個實現呢? 到目前來說, 只能看出他們是兩種不同的實現方式, 更多的區別, 還有待日后的學習體驗


更新: 閉包最常見的應用就是裝飾器。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/37556.html

相關文章

  • 說說Python閉包 - Closure

    摘要:閉包可以用來在一個函數與一組私有變量之間創建關聯關系。夾帶私貨外部變量返回的是函數,帶私貨的函數支持將函數當成對象使用的編程語言,一般都支持閉包。所以說當你的裝飾器需要自定義參數時,一般都會形成閉包。 Python中的閉包不是一個一說就能明白的概念,但是隨著你往學習的深入,無論如何你都需要去了解這么一個東西。 閉包的概念 我們嘗試從概念上去理解一下閉包。 在一些語言中,在函數中可以(嵌...

    leon 評論0 收藏0
  • PyTips 0x04 - Python 閉包與作用域

    摘要:項目地址閉包在計算機科學中,閉包英語,又稱詞法閉包或函數閉包,是引用了自由變量的函數。這個被引用的自由變量將和這個函數一同存在,即使已經離開了創造它的環境也不例外。 項目地址:https://git.io/pytips 閉包(Closure) 在計算機科學中,閉包(英語:Closure),又稱詞法閉包(Lexical Closure)或函數閉包(function closures),是...

    leejan97 評論0 收藏0
  • Python

    摘要:最近看前端都展開了幾場而我大知乎最熱語言還沒有相關。有關書籍的介紹,大部分截取自是官方介紹。但從開始,標準庫為我們提供了模塊,它提供了和兩個類,實現了對和的進一步抽象,對編寫線程池進程池提供了直接的支持。 《流暢的python》閱讀筆記 《流暢的python》是一本適合python進階的書, 里面介紹的基本都是高級的python用法. 對于初學python的人來說, 基礎大概也就夠用了...

    dailybird 評論0 收藏0
  • Python Enclosing作用域、閉包、裝飾器話聊上篇

    摘要:作用域閉包裝飾器話聊上篇聽講一切都是對象,是嗎是的,像函數也是對象。不錯嘛這都被你看出來了,那你知道作用域的原則嗎我知道是知道可以我就是對那個作用域不是很理解。如果內部函數引用到外層函數作用域的對象,這個內部函數就稱為閉包。 Python Enclosing作用域、閉包、裝飾器話聊上篇 Jaglawz: 聽講Python一切都是對象,是嗎? Pylego: 是的,像函數也是對象。 Ja...

    Faremax 評論0 收藏0
  • Python函數裝飾器和閉包

    摘要:變量查找規則在中一個變量的查找順序是局部環境,閉包,全局,內建閉包引用了自由變量的函數。閉包的作用閉包的最大特點是可以將父函數的變量與內部函數綁定,并返回綁定變量后的函數,此時即便生成閉包的環境父函數已經釋放,閉包仍然存在。 導語:本文章記錄了本人在學習Python基礎之函數篇的重點知識及個人心得,打算入門Python的朋友們可以來一起學習并交流。 本文重點: 1、掌握裝飾器的本質、功...

    caozhijian 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<