函式的巢狀和作用域

2022-08-10 08:00:11 字數 539 閱讀 2014

函式的巢狀定義

①內部函式可以使用外部函式的變數

作用域鏈

在內部函式使用變數時,是從小區域性到大區域性到全域性到內建名字的過程中一級一級網上找,找到最近的乙個就使用

nonlocal a 宣告乙個上層區域性變數,往上走一級離得最近並且有a

1、對全域性無效

2、對區域性的最近的一層產生影響

閉包巢狀函式,內部函式呼叫外部函式的變數

不呼叫不是閉包是巢狀

def outer()

a = 1

def inner():

print(a)

outer()

閉包的應用

可以保護變數,保護上一級區域性變數中a = 1 生存週期

def outer()

a= 1

def inner()

return innner

print(a)

inn = outer()    #用imn接收return inner

inn()    #直接呼叫函式,省去a重複創造並使用,節省記憶體空間

巢狀函式和作用域

看上面的標題的意思是,函式還能套函式?name alex def change name name alex2 def change name2 name alex3 print 第3層列印 name change name2 呼叫內層函式 print 第2層列印 name change name ...

函式的巢狀和作用鏈域

def max a,b return a if a b else b def the max x,y,z 函式的巢狀呼叫 c max x,y return max c,z print the max 1,2,3 函式的巢狀定義 內部函式可以使用外部函式的變數 a 1 def outer a 1 de...

python中函式的巢狀和作用域鏈

1.三元運算 if條件成立的結果 if 條件 else 條件不成立的結果 例如 a 20 b 10 c a if a b else b print c 2.命名空間 三種命名空間之間的載入順序和取值順序 載入順序 內建 程式執行前載入 全域性 從上到下順序載入進來的 區域性 呼叫的時候載入 內建 取...