1. 程式人生 > >day 11函式引數,名稱作用域。

day 11函式引數,名稱作用域。

1. 動態傳參
        形參:
            1. 位置引數
            2. 預設值引數
            3. 動態傳參
                1 *args: 動態接收位置引數
                2 **kwargs:動態接收關鍵字引數
                順序: 位置, *args, 預設值, **kwargs                 *, **:
                    def func(*args, **kwargs): 無敵傳參
                        pass
                    *, ** 在形參位置: 聚合
                          在實參位置: 打散
        實參:
            1. 位置引數
            2. 關鍵字引數
            3. 混合引數     2. 名稱空間和作用域
        名稱空間: 儲存名字用的
             變數, 函式, 類         1. 內建名稱空間:python自己, print, input, len
        2. 全域性名稱空間: 你寫的程式碼從上到下
        3. 區域性名稱空間: 函式, 類, 方法, 其他模組, 物件         作用域
            全域性作用域
                 內建 + 全域性
            區域性作用域
                 區域性名稱空間
            從區域性找全域性可以. 但是從全域性找區域性是不可以的             globals()  檢視全域性作用域中的名字
            locals() 檢視當前作用域中的名字     3. 函式的巢狀
         每一層都會產生獨自的名稱空間
    4. nonlocal global
        global: 在區域性引入全域性的內容,  可以昇華一個變數為全域性變數
        nonlocal :  在區域性, 引入上一層名稱空間中的變數, 如果沒有, 繼續上一層