python函數參數,名稱空間,以及函數嵌套
一. 函數參數–動態(tài)傳參
1.1動態(tài)位置接受參數,在參數位置編寫*表?示接收任意內容

注意:
動態(tài)參數與位置參數的關系

默認參數和動態(tài)參數的關系

小結: 順序: 位置參數, 動態(tài)參數*, 默認值參數
1.2 動態(tài)接收關鍵字參數
在python中可以動態(tài)的位置參數,但是*這種情況只能接收位置參數無法接收關鍵字參數.
可以使用**來接收動態(tài)關鍵字參數
實例:
注意:關鍵字參數與未知參數關系

所以關鍵字參數必須在位置參數后?面. 由于實參是這個順序. 所以形參接收的時候也是這個順序.
也就是說位置參數必須在關鍵字參數前面. 動態(tài)接收關鍵字參數也要在后面
最終順序(*):位置參數 > *args > 默認值參數 > **kwargs
1.3無敵傳參 * args, * * kwargs 一起使用
實例:

1.4 動態(tài)參數的另?一種傳參?方式:

在實參位置上給一個序列,列表,可迭代對象前?面加個表示把這個序列按順序打散.
在形參的位置上的表?示把接收到的參數組合成?一個元組
如果是?一個字典, 那么也可以打散. 不過需要?用兩個*

在實參位置: 打散
二. 命名空間
我們給存放名字和值的關系的空間起?一個名字叫:命名空間. 我們的變量量在存儲的時候就是存儲在這片空間中的.
命名空間分類:
- 全局命名空間–> 我們直接在
py?文件中, 函數外聲明的變量都屬于全局命名空間 - 局部命名空間–> 在函數中聲明的變量會放在局部命名空間
- 內置命名空間–> 存放
python解釋器為我們提供的名字,list,tuple,str,int這些都是內置命名空間
加載順序:
- 內置命名空間
- 全局命名空間
- 局部命名空間(函數被執(zhí)行的時候)
取值順序:
- 局部命名空間
- 全局命名空間
- 內置命名空間
作用域: 作用域就是作用范圍, 按照生效范圍來看分為 全局作用域和局部作用域
全局作用域: 包含內置命名空間和全局命名空間. 在整個文件的任何位置都可以使用(遵循從上到下逐行執(zhí)行).
局部作?用域: 在函數內部可以使?.
作用域命名空間:
- 全局作用域: 全局命名空間 + 內置命名空間
- 局部作用域: 局部命名空間
可以通過globals()函數來查看全局作?用域中的內容, 也可以通過locals()來查看局部作用域中的變量量和函數信息

三. 函數的嵌套
- 只要遇?見了了()就是函數的調用. 如果沒有()就不是函數的調?
- 函數的執(zhí)行順序

四. 關鍵字global和nonlocal
global:
首先我們寫這樣一個代碼, 首先在全局聲一個變量, 然后再局部調用這個變量量, 并改變這個變量的值
例1:

例2:

nonlocal 表示在局部作用域中, 調用父級命名空間中的變量

總結:
global: 在局部引入全局的內容, 可以升華一個變量為全局變量
到此這篇關于python函數參數,名稱空間,以及函數嵌套的文章就介紹到這了,更多相關python函數參數,名稱空間,以及函數嵌套內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!


