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