python閉包

從表現形式上定義為:如果在一個內部函數如下面代碼中的funY函數對其外部作用域funX函數進行變量(x)引用,那么我們說這個內部函數funY就是一個閉包.

def funX(x):    
    def funY(y):
        return x * y
    return funY

上面函數 funX的返回值為一個function對象,可以以funX(8)(5)這種方式調用.
注意:與在函數里引用全局變量時需要加關鍵字global一樣,在內部函數里要引用外部函數的變量我們則使用nolocal關鍵字.

def funX():
    x = 25
    def funY():
        nolocal x
        x += 1
        return x
    return funY()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 作用域 在理解閉包前,先看一個函數: 可以看到func()函數內部的變量無法在函數外部使用 全局變量out_fun...
    XYZeroing閱讀 929評論 0 10
  • 項目地址:https://git.io/pytips 閉包(Closure) 在計算機科學中,閉包(英語:Clos...
    蛙聲一爿閱讀 588評論 0 5
  • 我在博客中曾經介紹過兩篇關于函數的文章,第一篇是 關于 Python 函數是第一類對象,第二篇是關于 Lambda...
    liuzhijun閱讀 1,540評論 2 27
  • 轉載自https://serholiu.com/python-closures了解閉包前,先了解一下變量作用域看個...
    第八共同體閱讀 251評論 0 0
  • 什么是閉包? 簡單說,閉包就是根據不同的配置信息得到不同的結果 再來看看專業的解釋:閉包(Closure)是詞法閉...
    chen_000閱讀 147評論 0 0