python函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套
一. 函數(shù)參數(shù)–動態(tài)傳參
1.1動態(tài)位置接受參數(shù),在參數(shù)位置編寫*表⽰示接收任意內(nèi)容
注意:
動態(tài)參數(shù)與位置參數(shù)的關(guān)系
默認(rèn)參數(shù)和動態(tài)參數(shù)的關(guān)系
小結(jié): 順序: 位置參數(shù), 動態(tài)參數(shù)*, 默認(rèn)值參數(shù)
1.2 動態(tài)接收關(guān)鍵字參數(shù)
在python中可以動態(tài)的位置參數(shù),但是*這種情況只能接收位置參數(shù)無法接收關(guān)鍵字參數(shù).
可以使用**來接收動態(tài)關(guān)鍵字參數(shù)
實(shí)例:
注意:關(guān)鍵字參數(shù)與未知參數(shù)關(guān)系
所以關(guān)鍵字參數(shù)必須在位置參數(shù)后⾯面. 由于實(shí)參是這個順序. 所以形參接收的時候也是這個順序.
也就是說位置參數(shù)必須在關(guān)鍵字參數(shù)前面. 動態(tài)接收關(guān)鍵字參數(shù)也要在后面
最終順序(*):位置參數(shù) > *args > 默認(rèn)值參數(shù) > **kwargs
1.3無敵傳參 * args, * * kwargs 一起使用
實(shí)例:
1.4 動態(tài)參數(shù)的另⼀一種傳參⽅方式:
在實(shí)參位置上給一個序列,列表,可迭代對象前⾯面加個表示把這個序列按順序打散.
在形參的位置上的表⽰示把接收到的參數(shù)組合成⼀一個元組
如果是⼀一個字典, 那么也可以打散. 不過需要⽤用兩個*
在實(shí)參位置: 打散
二. 命名空間
我們給存放名字和值的關(guān)系的空間起⼀一個名字叫:命名空間. 我們的變量量在存儲的時候就是存儲在這片空間中的.
命名空間分類:
- 全局命名空間–> 我們直接在
py
⽂文件中, 函數(shù)外聲明的變量都屬于全局命名空間 - 局部命名空間–> 在函數(shù)中聲明的變量會放在局部命名空間
- 內(nèi)置命名空間–> 存放
python
解釋器為我們提供的名字,list
,tuple
,str
,int
這些都是內(nèi)置命名空間
加載順序:
- 內(nèi)置命名空間
- 全局命名空間
- 局部命名空間(函數(shù)被執(zhí)行的時候)
取值順序:
- 局部命名空間
- 全局命名空間
- 內(nèi)置命名空間
作用域: 作用域就是作用范圍, 按照生效范圍來看分為 全局作用域和局部作用域
全局作用域: 包含內(nèi)置命名空間和全局命名空間. 在整個文件的任何位置都可以使用(遵循從上到下逐行執(zhí)行).
局部作⽤用域: 在函數(shù)內(nèi)部可以使⽤.
作用域命名空間:
- 全局作用域: 全局命名空間 + 內(nèi)置命名空間
- 局部作用域: 局部命名空間
可以通過globals()
函數(shù)來查看全局作⽤用域中的內(nèi)容, 也可以通過locals()
來查看局部作用域中的變量量和函數(shù)信息
三. 函數(shù)的嵌套
- 只要遇⻅見了了()就是函數(shù)的調(diào)用. 如果沒有()就不是函數(shù)的調(diào)⽤
- 函數(shù)的執(zhí)行順序
四. 關(guān)鍵字global和nonlocal
global:
首先我們寫這樣一個代碼, 首先在全局聲一個變量, 然后再局部調(diào)用這個變量量, 并改變這個變量的值
例1:
例2:
nonlocal
表示在局部作用域中, 調(diào)用父級命名空間中的變量
總結(jié):
global
: 在局部引入全局的內(nèi)容, 可以升華一個變量為全局變量
到此這篇關(guān)于python
函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套的文章就介紹到這了,更多相關(guān)python
函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。