Python 閉包

閉包是 一個函數(shù)相關(guān)引用環(huán)境中的自由變量 組合的實體。

裝飾器也是閉包,只是這個 自由變量是函數(shù)

def func(name):
    def inner_func(age):
        print 'name:', name, 'age:', age
    return inner_func

bb = func('the5fire')
bb(26)  # 

bb 稱之為閉包函數(shù),
func稱之為閉包生產(chǎn)者,
bb被func包裹,且引用了外部環(huán)境的name變量

 def int_seq():
     i = 0
     def foo():
          nonlocal i
          i += 1
          return i
     return foo

a= foo()
a() 返回1,再次調(diào)用a()返回2,以此類推

這個a 稱之為閉包函數(shù),是一個處理邏輯函數(shù)加上外部i變量的組合實體

i的初始化值是在生產(chǎn)的一刻就確定的了

https://segmentfault.com/a/1190000004461404

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

  • 我在博客中曾經(jīng)介紹過兩篇關(guān)于函數(shù)的文章,第一篇是 關(guān)于 Python 函數(shù)是第一類對象,第二篇是關(guān)于 Lambda...
    liuzhijun閱讀 1,604評論 2 27
  • 作用域 作用域是程序運行時變量可被訪問的范圍,定義在函數(shù)內(nèi)的變量是局部變量,局部變量的作用范圍只能是函數(shù)內(nèi)部范圍內(nèi)...
    大川無敵閱讀 383評論 0 0
  • 作用域 在理解閉包前,先看一個函數(shù): 可以看到func()函數(shù)內(nèi)部的變量無法在函數(shù)外部使用 全局變量out_fun...
    XYZeroing閱讀 1,036評論 0 10
  • 什么是閉包? 簡單說,閉包就是根據(jù)不同的配置信息得到不同的結(jié)果 再來看看專業(yè)的解釋:閉包(Closure)是詞法閉...
    chen_000閱讀 175評論 0 0
  • 夜色漸濃 哀傷在心底流淌 城市的微光 催著人與人散場 桃花開了 一樹繁華 又是一年四月天 世間再無你也再無程蝶衣 ...
    影半夏閱讀 403評論 0 2

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