1. 程式人生 > >巨蟒python全棧開發-第10天 函式進階

巨蟒python全棧開發-第10天 函式進階

一.今日主要內容總覽(重點)
1.動態傳參(重點)  *,**
*:
形參:聚合
位置引數*=>元組
關鍵字**=>字典
實參:打散
列表,字串,元組=>*
字典=>**

形參順序:
位置,*args,預設值,**kwargs

無敵傳參:
def func(*args,**kwargs): #arguments引數, keyword-arguments關鍵字引數
pass

2.作用域和名稱空間
名稱空間:用來存放名字(變數,函式名,類名,引入的模組名字)的

1.全域性名稱空間:我們在py檔案中自己寫的變數,函式...
2.內建名稱空間:我們python直譯器提供好的一些內建函式(print,input...)
3.區域性名稱空間:在我們執行函式的時候,會產生一個區域性名稱空間.放的是:函式內部的內容(變數,函式,類...)

名稱空間可能會有無數個,區域性名稱空間,相對是獨立的,一般互不干擾

作用域:
1.全域性作用域:內建+全域性
2.區域性作用域:區域性

globals() 檢視全域性作用域
locals() 檢視當前作用域

#函式呼叫完畢,函式開闢的空間自動關閉

#全域性不能找區域性的變數
#但是區域性可以找全域性

3.函式的巢狀
在函式中宣告函式
在內部函式中使用變數的時候,查詢順序:先找自己=>上一層=>上一層..全域性=>內建

4.nonlocal和global關鍵字(重點)
golbal:在區域性引入全域性變數
nonlocal:在區域性...內層函式引入外層離他最近的那個變數

下週預習:
第一類物件(函式名,他就是個變數名),閉包,迭代器
生成器,各種推導式
內建函式1,內建函式2
裝飾器(頭疼),裝飾器進階

模組 //一個周
面向物件 //一個周

DAY10-函式進階

二.今日內容大綱
1.動態傳參
2.名稱空間&作用域
3.函式的互相呼叫和函式的巢狀
4.nonlocal&global