Python中什麼是閉包?閉包的好處是什麼?

老男孩IT教育機構發表於2021-12-16

  Python中什麼是閉包?本篇文章為大家帶來的內容就是關於Python閉包的介紹,有需要的朋友們,可以詳細閱讀一下,希望對你們有用。

  什麼是閉包?

  在函式中可以定義另一個函式時,如果內部的函式引用了外部的函式的變數,則可能產生閉包。

  閉包可以用來在一個函式與一組私有變數之間建立關聯關係。

  在給定函式被多次呼叫的過程中,這些私有變數能夠保持其永續性。

  形成閉包的三個條件

  必須有一個內嵌函式—這對應函式之間的巢狀;

  內嵌函式必須引用一個定義在閉合範圍內的變數—內部函式引用外部變數;

  外部函式必須返回內嵌函式—必須返回內部函式。

  換句話來說:閉包的概念很簡單,一個可以引用在函式閉合範圍內變數的函式,即內部函式,只有那個內部函式才有所謂的__closure__屬性。

  閉包的原理

  形成閉包之後,閉包函式會獲得一個非空的_Closure_屬性,這個屬性是一個元組。

  組裡面的物件為cell物件,而訪問cell物件的cell_contents屬性則可以得到閉包變數的當前值。

  而隨著閉包的繼續呼叫,變數會進行再次更新。由此可見,一般形成閉包之後,Python確定會將_closure_和閉包函式繫結作為儲存閉包變數的場所。

  閉包的好處是什麼?

  其實,閉包並不是必須的。

  沒有閉包的話,Python的功能不會受到任何影響;但有了閉包之後,可以提供一種額外的解決方案。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2848093/,如需轉載,請註明出處,否則將追究法律責任。

相關文章