函式的巢狀和作用鏈域

2021-09-12 09:56:01 字數 1331 閱讀 4250

#

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

#def inner():

#a = 2

#def inner2():

#nonlocal a #宣告了乙個上面第一層區域性變數

#a += 1 #不可變資料型別的修改

#inner2()

#print('##a## : ', a)

#inner()

#print('**a** : ',a)

#outer()

#print('全域性 :',a)

#nonlocal 只能用於區域性變數 找上層中離當前函式最近一層的區域性變數

#宣告了nonlocal的內部函式的變數修改會影響到 離當前函式最近一層的區域性變數

#對全域性無效

#對區域性 也只是對 最近的 一層 有影響

#a = 0

#def outer():

## a = 1

#def inner():

## a = 2

#def inner2():

#nonlocal a

#print(a)

#inner2()

#inner()##

# outer()

#def func():

#print(123)##

# func() #函式名就是記憶體位址

#func2 = func #函式名可以賦值

#func2()##

l = [func,func2] #函式名可以作為容器型別的元素

#print(l)

#for i in l:

#i()

deffunc():

print(123)

defwahaha(f):

f()return f #

函式名可以作為函式的返回值

qqxing = wahaha(func) #

函式名可以作為函式的引數

qqxing()

posted @

2018-12-08 22:58

hopelv 閱讀(

...)

編輯收藏

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

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

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

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

巢狀函式和作用域

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