python3 閉包(一)


# python 中的閉包

n = 10 #定義全局作用域變量


def fn(): #形成閉包
    n = 100 #定義局部變量n

    def inner():
        nonlocal n
        n += 1 #這里定義操作相同變量n無法調用上層作用中的變量,如果只讀不寫則可以正常訪問
               # python3 中新增nonlocal 關鍵字可以調用上層作用域中的變量
        print(n)

    inner()
    return inner #返回內嵌函數的地址,從而形成閉包
    #形成閉包的條件
    #1、必須要有一個內嵌函數
    #2、內嵌函數中要對自由變量的引用
    #3、外部函數必須返回內嵌函數


t = fn()
t()
t()
print(n)

 


免責聲明!

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



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