python函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套
一. 函數(shù)參數(shù)–動(dòng)態(tài)傳參
1.1動(dòng)態(tài)位置接受參數(shù),在參數(shù)位置編寫*表?示接收任意內(nèi)容
注意:
動(dòng)態(tài)參數(shù)與位置參數(shù)的關(guān)系
默認(rèn)參數(shù)和動(dòng)態(tài)參數(shù)的關(guān)系
小結(jié): 順序: 位置參數(shù), 動(dòng)態(tài)參數(shù)*, 默認(rèn)值參數(shù)
1.2 動(dòng)態(tài)接收關(guān)鍵字參數(shù)
在python中可以動(dòng)態(tài)的位置參數(shù),但是*這種情況只能接收位置參數(shù)無(wú)法接收關(guān)鍵字參數(shù).
可以使用**來(lái)接收動(dòng)態(tài)關(guān)鍵字參數(shù)
實(shí)例:
注意:關(guān)鍵字參數(shù)與未知參數(shù)關(guān)系
所以關(guān)鍵字參數(shù)必須在位置參數(shù)后?面. 由于實(shí)參是這個(gè)順序. 所以形參接收的時(shí)候也是這個(gè)順序.
也就是說(shuō)位置參數(shù)必須在關(guān)鍵字參數(shù)前面. 動(dòng)態(tài)接收關(guān)鍵字參數(shù)也要在后面
最終順序(*):位置參數(shù) > *args > 默認(rèn)值參數(shù) > **kwargs
1.3無(wú)敵傳參 * args, * * kwargs 一起使用
實(shí)例:
1.4 動(dòng)態(tài)參數(shù)的另?一種傳參?方式:
在實(shí)參位置上給一個(gè)序列,列表,可迭代對(duì)象前?面加個(gè)表示把這個(gè)序列按順序打散.
在形參的位置上的表?示把接收到的參數(shù)組合成?一個(gè)元組
如果是?一個(gè)字典, 那么也可以打散. 不過(guò)需要?用兩個(gè)*
在實(shí)參位置: 打散
二. 命名空間
我們給存放名字和值的關(guān)系的空間起?一個(gè)名字叫:命名空間. 我們的變量量在存儲(chǔ)的時(shí)候就是存儲(chǔ)在這片空間中的.
命名空間分類:
- 全局命名空間–> 我們直接在
py
?文件中, 函數(shù)外聲明的變量都屬于全局命名空間 - 局部命名空間–> 在函數(shù)中聲明的變量會(huì)放在局部命名空間
- 內(nèi)置命名空間–> 存放
python
解釋器為我們提供的名字,list
,tuple
,str
,int
這些都是內(nèi)置命名空間
加載順序:
- 內(nèi)置命名空間
- 全局命名空間
- 局部命名空間(函數(shù)被執(zhí)行的時(shí)候)
取值順序:
- 局部命名空間
- 全局命名空間
- 內(nèi)置命名空間
作用域: 作用域就是作用范圍, 按照生效范圍來(lái)看分為 全局作用域和局部作用域
全局作用域: 包含內(nèi)置命名空間和全局命名空間. 在整個(gè)文件的任何位置都可以使用(遵循從上到下逐行執(zhí)行).
局部作?用域: 在函數(shù)內(nèi)部可以使?.
作用域命名空間:
- 全局作用域: 全局命名空間 + 內(nèi)置命名空間
- 局部作用域: 局部命名空間
可以通過(guò)globals()
函數(shù)來(lái)查看全局作?用域中的內(nèi)容, 也可以通過(guò)locals()
來(lái)查看局部作用域中的變量量和函數(shù)信息
三. 函數(shù)的嵌套
- 只要遇?見(jiàn)了了()就是函數(shù)的調(diào)用. 如果沒(méi)有()就不是函數(shù)的調(diào)?
- 函數(shù)的執(zhí)行順序
四. 關(guān)鍵字global和nonlocal
global:
首先我們寫這樣一個(gè)代碼, 首先在全局聲一個(gè)變量, 然后再局部調(diào)用這個(gè)變量量, 并改變這個(gè)變量的值
例1:
例2:
nonlocal
表示在局部作用域中, 調(diào)用父級(jí)命名空間中的變量
總結(jié):
global
: 在局部引入全局的內(nèi)容, 可以升華一個(gè)變量為全局變量
到此這篇關(guān)于python
函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套的文章就介紹到這了,更多相關(guān)python
函數(shù)參數(shù),名稱空間,以及函數(shù)嵌套內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
常見(jiàn)的在Python中實(shí)現(xiàn)單例模式的三種方法
這篇文章主要介紹了常見(jiàn)的在Python中實(shí)現(xiàn)單例模式的三種方法,單例模式在各個(gè)編程語(yǔ)言的學(xué)習(xí)中都是需要掌握的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-04-04python flask實(shí)現(xiàn)分頁(yè)效果
這篇文章主要為大家詳細(xì)介紹了python flask實(shí)現(xiàn)分頁(yè)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06python實(shí)現(xiàn)會(huì)員管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)會(huì)員管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03利用Pycharm斷點(diǎn)調(diào)試Python程序的方法
今天小編就為大家分享一篇利用Pycharm斷點(diǎn)調(diào)試Python程序的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-11-11Python count函數(shù)使用方法實(shí)例解析
這篇文章主要介紹了Python count函數(shù)使用方法實(shí)例解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-03-03pyinstaller還原python代碼過(guò)程圖解
這篇文章主要介紹了pyinstaller還原python代碼過(guò)程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-01-01