1. 程式人生 > >python 函數(2)

python 函數(2)

尋找 全局變量 ima globals 圖片 -- 嵌套 加載順序 global

技術分享圖片

技術分享圖片

技術分享圖片

技術分享圖片

函數進階
一、函數參數--動態傳參
動態參數必須在位置參數的後面
1、動態接收位置參數*args
接受的數據類型為元組( , )
2、動態接受關鍵字參數**kwargs
動態傳參順序
位置參數 > 動態參數* > 默認值參數>**關鍵字動態傳參
*,**
形參: 聚合(接受元組合)
實參:打散
二、命名空間
1、定義
我們給存放名字和值的關系的空間起名為命名空間
2、分類
1、內置命名空間:存在python解釋器中,自帶的裝在內置函數名的空間
2、全局命名空間:我們直接在py文件中,創建的變量名和函數名都屬於全局命名空間
3、局部名空間:在函數內部申明的變量或者函數內部的函數名都屬於局部命名空間
3、加載順序
1、加載順序:內置命名空間->全局命名空間->局部名空間
2、取值順序:局部命名空間->全局命名空間-> 內置命名空間
4、作用域
1、全局作用域:全局命名空間+內置命名空間
globals( )查看全局作用域中的內容
2、局部作用域:局部命名空間
locals( )查看打的作用域中的內容,既可以查看全局,也可以查看局部作用域
三、函數的嵌套
定義:就是函數內部中定義了其他的函數


四、關鍵字global和nonlocal
global 變量名
1、如果全局變量中存在該變量,則將該變量引入局部,可以進行賦值操作
2、如果不存在,則在局部變量中直接創建該變量,並升華為全局變量
nonlocal 變量名(僅在局部中訊在變量)
在局部命名空間中,先往上一層尋找變量,找到就引入,沒找到就繼續往上上層尋找...最後沒找到就報錯

python 函數(2)