1. 程式人生 > >2018.11.1筆記

2018.11.1筆記

1.函式

不定長引數/動態位置引數(*args):以元組形式儲存多餘的位置引數

動態關鍵字引數(**kwargs):以字典形式儲存多餘的關鍵字引數

引數的排放順序為:必需引數(位置引數)>不定長引數(*args) >關鍵字引數>不定長(動態)關鍵字引數(**kwargs)

在形參前加*可以將引數聚合

在實參前加*可以按順序解包,拆開

** 和 *作用類似 **用於字典

2.名稱空間

存放名字和值的關係的空間起一個名字叫做名稱空間

名稱空間分類:         

1. 全域性名稱空間:我們直接在py檔案中, 函式外宣告的變量都屬於全域性名稱空間(全域性變數)

2. 區域性名稱空間:在函式中宣告的變量會放在區域性名稱空間(區域性變數)

3. 內建名稱空間:存放python直譯器提供的名字,如list, tuple, str, int都存在內建名稱空間 

載入順序:內建>全域性>區域性

取值順序:區域性>全域性>內建

3.作用域

分為全域性作用域和區域性作用域

全域性作用域:全域性名稱空間+內建名稱空間       

區域性作用域:區域性名稱空間

可以使用globals()來檢視全域性變數和函式,locals()檢視當前位置的區域性變數和函式

4.函式的巢狀

def func1():   
    print('func1')  

def func2():   
    print('func2')   
    func1()  

func2()

5.global與nonlocal

global:表示函式中使用全域性變數

nonlocal:表示函式中使用父級的區域性變數