Python函數(shù)參數(shù)的4種方式
Python的函數(shù)參數(shù)有4種:
- 必選參數(shù):函數(shù)調用時必須賦值的參數(shù)
- 默認參數(shù):函數(shù)定義時,賦予默認值的參數(shù),位于必選參數(shù)之后。如def test(param,default=3),default為默認參數(shù),函數(shù)調用時,如果沒有給default賦值,則使用其默認值3參與運算;否則使用函數(shù)調用時,用戶自定義的值
- 可選參數(shù):函數(shù)定義時以*開頭,表示0個或多個可選參數(shù)。當不確定函數(shù)的參數(shù)個數(shù)時,可使用。位于默認參數(shù)之后。將除去必選參數(shù)與默認 參數(shù)之外的不含參數(shù)名的所有參數(shù)打包為一個元祖,該元祖即為可選參數(shù)。
- 關鍵字參數(shù):函數(shù)定義時以**開頭,表示0個或多個關鍵字參數(shù)。函數(shù)調用時,參數(shù)需要參數(shù)名,如test(1,2,3,4,kw1=5,kw2=6),kw1=5和kw2=6就是兩個關鍵字參數(shù),kw1和kw2是參數(shù)名。關鍵字參數(shù)在函數(shù)中是字典格式,參數(shù)名為key,參數(shù)值為value。
def test(param,default=0,*args,**kw):
print('必選參數(shù)為:', param)
print('默認參數(shù)為:',default)
print('可選參數(shù)為:',args)
print('關鍵字參數(shù)為:',kw)
test(1,2,3,4,kw1=5,kw2=6)
輸出結果為:
必選參數(shù)為:1
默認參數(shù)為:2
可選參數(shù)為:(3,4)
關鍵字參數(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ù)定義處被解析一次,以后每次調用函數(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ù)組,因為只會被解析一次,以后每次調用都會在此基礎上變化。
2)可選參數(shù)
若要把一個數(shù)組中的值解構后賦值給可選數(shù)組,可在數(shù)組名前加一個*號,把數(shù)組元素傳給可變參數(shù)。
a=[3,4] //調用上述的test()函數(shù) test(1,2,a) //輸出為...可選參數(shù)為:([3,4],) test(1,2,*a) //輸出為...可選參數(shù)為:(3,4)
3)關鍵字參數(shù)
與可選參數(shù)類似,如果要把一個字典傳遞給關鍵字參數(shù),只需要在字典名前加**號。
b={'kw1':5,'kw2':6}
//調用上述的test()函數(shù)
test(1,2,3,4,**b) //輸出為...關鍵字參數(shù)為:{'kw1':5,'kw2':6}到此這篇關于Python函數(shù)參數(shù)的4種方式的文章就介紹到這了,更多相關Python函數(shù)參數(shù)內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
pytorch 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-08

