1. 程式人生 > >11、函數進階---閉包

11、函數進階---閉包

優先 打印 nbsp 這樣的 執行 div 使用 bsp urn

關於閉包,即函數定義和函數表達式位於另一個函數的函數體內(嵌套函數)。而且,這些內部函數可以訪問它們所在的外部函數中聲明的所有局部變量、參數。當其中一個這樣的內部函數在包含它們的外部函數之外被調用時,就會形成閉包。也就是說,內部函數會在外部函數返回後被執行。而當這個內部函數執行時,它仍然必需訪問其外部函數的局部變量、參數以及其他內部函數。這些局部變量、參數和函數聲明(最初時)的值是外部函數返回時的值,但也會受到內部函數的影響。
def outer():
    name = ‘alex‘
 
    def inner():
        print("在inner裏打印外層函數的變量",name)
 
    return inner
 
 
f = outer()
 
f()

閉包的意義:返回的函數對象,不僅僅是一個函數對象,在該函數外還包裹了一層作用域,這使得,該函數無論在何處調用,優先使用自己外層包裹的作用域

11、函數進階---閉包