嵌套函數(shù)

  1. 變量作用域
    內(nèi)部函數(shù)可以直接讀取訪問外部函數(shù)變量,但是不能修改;訪問規(guī)則是從內(nèi)到外函數(shù)逐級(jí)尋找變量
def outer(a):  
    i = a + 1  
    def inner():  
        j = i + 1  
        def innest():  
          print "innest: i=%d,j=%d" % (i, j)  
        innest()  
    inner()  
  
outer(1)  
  
$ python t.py  
innest: i=2,j=3

三級(jí)函數(shù),innest可以訪問inner的變量,也可以訪問outer的變量,但是均不能修改他們。(如何才能修改,我也不知道,但是python 3提供機(jī)制修改)

  1. 函數(shù)閉包
def outer(a):  
    i = a + 1  
    def inner():  
        print "inner: i=%d" % i  
    return inner  
  
foo = outer(1)  
foo()  
  
$ python t.py  
inner: i=2 
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1 嵌套函數(shù) 1 變量工作域 嵌套函數(shù)和主函數(shù)之間變量可以互相訪問。其中嵌套函數(shù)直接可以用主函數(shù)區(qū)間的變量,主函數(shù)...
    lsqufo閱讀 957評(píng)論 0 1
  • 這里其實(shí)還是講講我對(duì)javascript閉包的認(rèn)識(shí)。js中閉包就是以嵌套函數(shù)的外表出現(xiàn)的。內(nèi)容是我自己琢磨的,我估...
    smartphp閱讀 12,294評(píng)論 2 4
  • 源碼地址github此例子是在寫相冊(cè)選擇器時(shí)獲取圖片資源時(shí)所用,主要解決了獲取圖片的緩存問題和尺寸問題,簡(jiǎn)化了邏輯...
    CatLogic閱讀 2,372評(píng)論 0 5
  • 1.普通嵌套函數(shù): 2.閉包: 閉包,本質(zhì)是個(gè)函數(shù),即調(diào)用了自由變量x的函數(shù)inner 3.裝飾器: 裝飾器是一個(gè)...
    姜蔥汁閱讀 776評(píng)論 0 0
  • 當(dāng)我們創(chuàng)建一個(gè)對(duì)象而且里面有函數(shù)時(shí),我們?cè)诜祷睾瘮?shù)中想要調(diào)用對(duì)象里面的數(shù)據(jù)經(jīng)常會(huì)發(fā)現(xiàn)調(diào)用不了,可以看以下案例 對(duì)此...
    白癡不白閱讀 2,041評(píng)論 0 1

友情鏈接更多精彩內(nèi)容