2018.11.1筆記
阿新 • • 發佈:2018-12-18
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:表示函式中使用父級的區域性變數