標籤:理解 記錄 傳參 war 執行 遇到 載入 image alt
本節主要內容:
1. 函數參數--動態傳參
2. 名稱空間, 局部名稱空間, 全域名稱空間, 作?域, 載入順序.
3. 函數的嵌套
4. gloabal, nonlocal關鍵字
?. 函數參數--動態傳參
之前我們說過了傳參, 如果我們需要給?個函數傳參, ?參數?是不確定的. 或者我給?個
函數傳很多參數, 我的形參就要寫很多, 很?煩, 怎麼辦呢. 我們可以考慮使?動態參數.
形參的第三種: 動態參數
動態參數分成兩種 :::
1--->>>動態接收位置參數
首先,先回顧依稀位置參數:
注意:動態傳參的過程中,動態參數必須在位置參數後面
錯誤執行個體:
預設值參數:
這時候,我們發現,如果不給出關鍵字傳參,所有的預設值參數都是生效的
總結:參數順序---->>>>位置參數-----動態參數------預設值參數
2.動態接收關鍵字參數:
最終順序:
位置參數------>*args-------->預設值參數--------------->**kwargs
二:命名空間:
在python解譯器開始執?之後, 就會在記憶體中開闢?個空間, 每當遇到?個變數的時候, 就
把變數名和值之間的關聯性記錄下來, 但是當遇到函數定義的時候, 解譯器只是把函數名讀入內
存, 表?這個函數存在了, ?於函數內部的變數和邏輯, 解譯器是不關?的. 也就是說?開始
的時候函數只是載入進來, 僅此?已, 只有當函數被調?和訪問的時候, 解譯器才會根據函數
內部聲明的變數來進?開闢變數的內部空間. 隨著函數執?完畢, 這些函數內部變數占?的空
間也會隨著函數執?完畢?被清空.
載入順序:
內建命名空間-------->>>>全域命名空間--------->>>>>局部命名空間(函數被執行的時候)
取值順序:
局部命名空間-------->>>>>>全域命名空間---------->>>>內建命名空間
作?域: 作?域就是作?範圍, 按照?效範圍來看分為 全域作?域和局部作?域
全域作?域: 包含內建命名空間和全域命名空間. 在整個?件的任何位置都可以使?(遵循
從上到下逐?執?). 局部作?域: 在函數內部可以使?.
作?網域命名空間:
1. 全域作?域: 全域命名空間 + 內建命名空間
2. 局部作?域: 局部命名空間
三,函數的嵌套
1. 只要遇?了()就是函數的調?. 如果沒有()就不是函數的調?
2. 函數的執?順序
四. 關鍵字global和nonlocal
?先我們寫這樣?個代碼, ?先在全域聲明?個變數, 然後再局部調?這個變數, 並改變這
個變數的值
nonlocal 表?在局部作?域中, 調??級命名空間中的變數.
這個global和nonlocal比較繞 需要多理解一下
python 基礎篇 10 函數進階