python閉包詳解+實例演示


“閉包”這個詞語相信大多數學過編程的同學並不陌生,但是有時候理解起來還是有一定難度。先看定義:

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

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

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

看到這里或許你依然不明白什么是閉包,沒關系,看完下面的小例子你一定會明白!

 1 #! /usr/bin/env python
 2 # coding=utf-8
 3 # http://www.pythontab.com
 4 
 5 #定義一個函數
 6 def plus(number):
 7 
 8 #在函數內部再定義一個函數,其實這個里面的函數就被認為是閉包
 9 def plus_in(number_in):
10 #這里打印一下number_in變量,以便大家可以更清楚傳進來的變量時哪一個
11 print str(number_in) + "\r\n"
12 
13 return number+number_in
14 #其實這里返回的就是閉包的結果
15 return plus_in
16 
17 
18 #給plus函數賦值,這個20就是給參數number
19 v1=plus(20)
20 
21 #注意這里的100其實給參數number_in
22 
23 print v1(100)

 

運行結果:

100

120

 

注意:100是print str(number_in) + "\r\n"打印的結果哦

講到這里大家明白什么是閉包了吧~~上次給大家推薦的python學習網站pythontab中文網 大家看了沒?感覺不錯吧,反正我感覺還是蠻專業的,更新很快,講解也細致,不是做廣告哈


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM