Python函數(shù)參數(shù)的4種方式
Python的函數(shù)參數(shù)有4種:
- 必選參數(shù):函數(shù)調(diào)用時(shí)必須賦值的參數(shù)
- 默認(rèn)參數(shù):函數(shù)定義時(shí),賦予默認(rèn)值的參數(shù),位于必選參數(shù)之后。如def test(param,default=3),default為默認(rèn)參數(shù),函數(shù)調(diào)用時(shí),如果沒有給default賦值,則使用其默認(rèn)值3參與運(yùn)算;否則使用函數(shù)調(diào)用時(shí),用戶自定義的值
- 可選參數(shù):函數(shù)定義時(shí)以*開頭,表示0個(gè)或多個(gè)可選參數(shù)。當(dāng)不確定函數(shù)的參數(shù)個(gè)數(shù)時(shí),可使用。位于默認(rèn)參數(shù)之后。將除去必選參數(shù)與默認(rèn) 參數(shù)之外的不含參數(shù)名的所有參數(shù)打包為一個(gè)元祖,該元祖即為可選參數(shù)。
- 關(guān)鍵字參數(shù):函數(shù)定義時(shí)以**開頭,表示0個(gè)或多個(gè)關(guān)鍵字參數(shù)。函數(shù)調(diào)用時(shí),參數(shù)需要參數(shù)名,如test(1,2,3,4,kw1=5,kw2=6),kw1=5和kw2=6就是兩個(gè)關(guān)鍵字參數(shù),kw1和kw2是參數(shù)名。關(guān)鍵字參數(shù)在函數(shù)中是字典格式,參數(shù)名為key,參數(shù)值為value。
def test(param,default=0,*args,**kw): print('必選參數(shù)為:', param) print('默認(rèn)參數(shù)為:',default) print('可選參數(shù)為:',args) print('關(guān)鍵字參數(shù)為:',kw) test(1,2,3,4,kw1=5,kw2=6)
輸出結(jié)果為:
必選參數(shù)為:1
默認(rèn)參數(shù)為:2
可選參數(shù)為:(3,4)
關(guān)鍵字參數(shù)為:{'kw1':5,'kw2':6}
注意點(diǎn):
1)默認(rèn)參數(shù):
- 若有多個(gè)默認(rèn)參數(shù),如def test(param,default1=1,default2=2,default3=3),可按順序賦值 ,如test(1,2,3,4),得到default1=2,default2=3,default3=4 ;也可以不按順序賦值,如test(1,default2=0,default1=5,default3=1) ,得到default1=5,default2=0,default3=1。
- 由于Python的默認(rèn)值參數(shù)只會(huì)在函數(shù)定義處被解析一次,以后每次調(diào)用函數(shù)的時(shí)候,默認(rèn)值參數(shù)都會(huì)是這個(gè)值。若默認(rèn)值參數(shù)是一些不可變的數(shù)據(jù)類型,如整型、字符串等,不會(huì)有問題。但遇到可變數(shù)據(jù)類型,如數(shù)組,就會(huì)出現(xiàn)問題。
def add(num, valuelist=[]): valuelist.append(num) print(id(valuelist),valuelist) add(1) //輸出 102003080 [1] add(2) //輸出 102003080 [1,2] add(3) //輸出 102003080 [1,2,3]
valuelist在函數(shù)第一次被解析的時(shí)候會(huì)被賦值為空數(shù)組,因?yàn)橹粫?huì)被解析一次,以后每次調(diào)用都會(huì)在此基礎(chǔ)上變化。
2)可選參數(shù)
若要把一個(gè)數(shù)組中的值解構(gòu)后賦值給可選數(shù)組,可在數(shù)組名前加一個(gè)*號(hào),把數(shù)組元素傳給可變參數(shù)。
a=[3,4] //調(diào)用上述的test()函數(shù) test(1,2,a) //輸出為...可選參數(shù)為:([3,4],) test(1,2,*a) //輸出為...可選參數(shù)為:(3,4)
3)關(guān)鍵字參數(shù)
與可選參數(shù)類似,如果要把一個(gè)字典傳遞給關(guān)鍵字參數(shù),只需要在字典名前加**號(hào)。
b={'kw1':5,'kw2':6} //調(diào)用上述的test()函數(shù) test(1,2,3,4,**b) //輸出為...關(guān)鍵字參數(shù)為:{'kw1':5,'kw2':6}
到此這篇關(guān)于Python函數(shù)參數(shù)的4種方式的文章就介紹到這了,更多相關(guān)Python函數(shù)參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于Python 常用獲取元素 Driver 總結(jié)
今天小編就為大家分享一篇關(guān)于Python 常用獲取元素 Driver 總結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11pytorch finetuning 自己的圖片進(jìn)行訓(xùn)練操作
這篇文章主要介紹了pytorch finetuning 自己的圖片進(jìn)行訓(xùn)練操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06使用Cython中prange函數(shù)實(shí)現(xiàn)for循環(huán)的并行
Cython中提供了一個(gè)prange函數(shù),專門用于循環(huán)的并行執(zhí)行。這個(gè) prange的特殊功能是Cython獨(dú)一無二的,并且prange只能與for循環(huán)搭配使用,不能獨(dú)立存在。本文就將使用 prange 實(shí)現(xiàn) for 循環(huán)的并行,感興趣的可以了解一下2022-08-08django文檔學(xué)習(xí)之a(chǎn)pplications使用詳解
這篇文章主要介紹了Python文檔學(xué)習(xí)之a(chǎn)pplications使用詳解,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01python解決12306登錄驗(yàn)證碼的實(shí)現(xiàn)
這篇文章主要介紹了python解決12306登錄驗(yàn)證碼的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Pandas之ReIndex重新索引的實(shí)現(xiàn)
這篇文章主要介紹了Pandas之ReIndex重新索引的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-06-06django 做 migrate 時(shí) 表已存在的處理方法
今天小編就為大家分享一篇django 做 migrate 時(shí) 表已存在的處理方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-08-08