函數對象 函數嵌套 名稱空間與做用域 閉包函數

一函數對象

 函數是第一類對戲那個,即函數能夠看成數據傳遞python

1.能夠被引用閉包

2.能夠看成參數傳遞函數

3.返回值能夠是函數對象

二函數嵌套

def max(x,y):
    return x if x > y else y

def max4(a,b,c,d):
    res1=max(a,b)
    res2=max(res1,c)
    res3=max(res2,d)
    return res3
print(max4(1,2,3,4))

三名乘空間與做用域

1.名稱空間:指的就是存放值與內存地址綁定關係的地方。內存

內置名稱空間作用域

存放的是python解釋器自帶的名字引用

產生:python解釋器啓動時則產生程序

銷燬:python解釋器關閉時則銷燬數據

 

全局名稱空間:在頂級定義的名字參數傳遞

產生:執行python程序時產生

銷燬:python程序執行完畢後銷燬

局部名稱空間:在函數內定義的名字

產生:在函數調用時臨時產生

銷燬:在函數調用完畢後銷燬

 

三種名稱空間產生前後順序:內置》全局》局部

查找名字的順序:從當前想外查找  局部》全局》內置

2.做用域:指的是做用範圍

全局做用域:包含內置與全局名稱空間的名字

                特色:全局存活,全局有效

局部做用域:包含局部名稱空間的名字

                特色:臨時存活,局部有效

!!!做用域關係時在函數定義階段就已經固定死了,與調用位置無關。

四閉包函數

內部函數包含對外部做用域而非全局做用域的引用

閉包函數的意義與應用

閉包的意義:返回的函數對象,不單單是一個函數對象,在該函數外還包裹了一層做用域,這使得,該函數不管在何處調用,優先使用本身外層包裹的做用域 #應用領域:延遲計算(原來咱們是傳參,如今咱們是包起來)

相關文章
相關標籤/搜索