新聞中心
“閉包”這個(gè)詞語(yǔ)相信大多數(shù)學(xué)過(guò)編程的同學(xué)并不陌生,但是有時(shí)候理解起來(lái)還是有一定難度。

成都創(chuàng)新互聯(lián)主要從事做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)青原,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):13518219792
先看定義:閉包是由函數(shù)和與其相關(guān)的引用環(huán)境組合而成的實(shí)體。比如參考資源中就有這樣的的定義:在實(shí)現(xiàn)深約束時(shí),需要?jiǎng)?chuàng)建一個(gè)能顯式表示引用環(huán)境的東西,并將它與相關(guān)的子程序捆綁在一起,這樣捆綁起來(lái)的整體被稱為閉包。
python閉包(closure)其實(shí)并不是什么很復(fù)雜的東西。
通俗的講就是:如果在一個(gè)內(nèi)部函數(shù)里,對(duì)在外部作用域(但不是在全局作用域)的變量進(jìn)行引用,那么內(nèi)部函數(shù)就被認(rèn)為是閉包(closure)。它只不過(guò)是個(gè)“內(nèi)層”的函數(shù),由一個(gè)名字(變量)來(lái)指代,而這個(gè)名字(變量)對(duì)于“外層”包含它的函數(shù)而言,是本地變量。
看到這里或許你依然不明白什么是閉包,沒(méi)關(guān)系,看完下面的小例子你一定會(huì)明白!
#! /usr/bin/env python # coding=utf-8 # http://www.pythontab.com #定義一個(gè)函數(shù) def plus(number): #在函數(shù)內(nèi)部再定義一個(gè)函數(shù),其實(shí)這個(gè)里面的函數(shù)就被認(rèn)為是閉包 def plus_in(number_in): #這里打印一下number_in變量,以便大家可以更清楚傳進(jìn)來(lái)的變量時(shí)哪一個(gè) print str(number_in) + "\r\n" return number+number_in #其實(shí)這里返回的就是閉包的結(jié)果 return plus_in #給plus函數(shù)賦值,這個(gè)20就是給參數(shù)number v1=plus(20) print v1(100) #注意這里的100其實(shí)給參數(shù)number_in
運(yùn)行結(jié)果
100 120
注意:100是print str(number_in) + "\r\n"打印的結(jié)果哦,講到這里大家明白什么是閉包了吧~~
網(wǎng)站名稱:創(chuàng)新互聯(lián)Python教程:python閉包詳解(實(shí)例)
地址分享:http://www.dlmjj.cn/article/djesgjd.html


咨詢
建站咨詢
