首頁  >  文章  >  後端開發  >  python閉包詳解

python閉包詳解

高洛峰
高洛峰原創
2016-10-18 14:53:061475瀏覽

「閉包」這個字相信大多數學過程式設計的同學並不陌生,但是有時候理解起來還是有一定難度。先看定義:

閉包是由函數和與其相關的引用環境組合而成的實體。例如參考資源中就有這樣的定義:在實現深約束時,需要創建一個能顯式表示引用環境的東西,並將它與相關的子程序捆綁在一起,這樣捆綁起

來的整體被稱為閉包。

python閉包(closure)其實並不是什麼很複雜的東西。

通俗的講就是:如果在一個內部函數裡,對在外部作用域(但不是在全域作用域)的變數進行引用,那麼內部函數就被認為是閉包(closure)。它只不過是個「內層」的函數,由一個名字(變數)來指涉,而這個名字(變數)對於「外層」包含它的函數而言,是本地變數。

看到這裡或許你還是不明白什麼是閉包,沒關係,看完下面的小例子一定會懂!
# coding=utf-8
# http://www.pythontab.com

#定義一個函數
def plus(number):

#在函數內部再定義一個函數,其實這個裡面的函數就被認為是閉包
   def plus_in(number_in):
#這裡打印number_in變量,以便大家可以更清楚傳進來的變量時哪一個
     "

       return number+number_in
#其實這裡回傳的就是閉包的結果
   return plus_in


#給plus函數賦值,這個20是給#注意這裡的100其實給參數number_in


運行結果:

100

120

注意:100是print str(number_in) + "rn"列印的結果哦

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn