1.位置參數(shù)
位置參數(shù)要求調(diào)用時(shí)傳入函數(shù)的參數(shù)必須和定義時(shí)的位置和個(gè)數(shù)一致,即一一對(duì)應(yīng),不可缺省
def func(a,b):sum = a + breturn sum
print(func(2,3)) //5
print(func(2)) //報(bào)錯(cuò)
2.默認(rèn)參數(shù)
定義在位置參數(shù)后,作用是當(dāng)參數(shù)缺省時(shí),用定義的默認(rèn)值替代
def func(a,b=3):sum = a + b return sum
print(func(2,4)) //6
print(func(2)) //5
3.可變參數(shù)
在tuple或list前加一個(gè)*,構(gòu)造出可變參數(shù)。接收任意個(gè)參數(shù),包括0個(gè)。用于函數(shù)參數(shù)不確定的情況
def func(*args):sum = 0for x in args:sum += xreturn sum print(func(1,2,3)) //6
//將list或tuple內(nèi)全部元素作為可變參數(shù)
L = [1,2,3,4]
print(func(*L)) //10
4.關(guān)鍵字參數(shù)
在dict前加兩個(gè)*,構(gòu)造關(guān)鍵字參數(shù)。接收任意無限制的參數(shù),用于擴(kuò)展函數(shù)的功能
def func(a,b,**kw):sum = a+bprint(a,'+',b,'=',sum,kw)
func(2,3,color="black",phone="vivo")
// Out:2 + 3 = 5 {'color': 'black', 'phone': 'vivo'}//先組裝dict,再作為關(guān)鍵字參數(shù)傳進(jìn)去
desc = {'color': 'black', 'phone': 'vivo'}
func(2,3,**desc)
// Out:2 + 3 = 5 {'color': 'black', 'phone': 'vivo'}
5.命名關(guān)鍵字參數(shù)
命名關(guān)鍵字參數(shù)指定了key,將關(guān)鍵字參數(shù)做了一個(gè)限制。以一個(gè)作為分割。如果已經(jīng)存在可變參數(shù),那么命名關(guān)鍵字不需要作為分割
def func(a,b,*,color):sum = a+bprint(a,'+',b,'=',sum,'color:',color)
func(2,3,color='black') // Out:2 + 3 = 5 color: black
func(2,3,color='black',phone='vivo') //報(bào)錯(cuò) func() got an unexpected keyword argument 'phone'
//如果已經(jīng)存在可變參數(shù),那么命名關(guān)鍵字不需要*作為分割
def func(a,b,*args,color='red'):sum = a+bprint(a,'+',b,'=',sum,args,'color:',color)
func(2,3,color='black') //2 + 3 = 5 () color: black
func(2,3,4,5,color='black') // 2 + 3 = 5 (4, 5) color: black
//命名關(guān)鍵字支持默認(rèn)值
func(2,3,4,5) //2 + 3 = 5 (4, 5) color: red
注意:
參數(shù)位置排列順序:位置參數(shù),默認(rèn)參數(shù),可變參數(shù),命名關(guān)鍵字參數(shù),關(guān)鍵字參數(shù),
總結(jié)
以上是生活随笔為你收集整理的python疑问5:位置参数,默认参数,可变参数,关键字参数,命名关键字参数区别...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。