1. 必備參數(shù)(普通參數(shù))
def test1(name,age)
test1(‘python’,23) #傳參的順序和函數(shù)里的順序一致
2. 關(guān)鍵字參數(shù)
def test2(name,age)
test2(name=‘ellie’,age=9)#參數(shù)順序可以和函數(shù)里的不一致
3. 默認(rèn)參數(shù)
def test3(name,age,point=98)
test3(‘ellie’,23)#points沒(méi)有傳參數(shù)時(shí),默認(rèn)使用默認(rèn)值
test3(‘ellie32’,34,90)#默認(rèn)值傳參數(shù)時(shí),將不會(huì)使用默認(rèn)值
4. 不定長(zhǎng)參數(shù)(可變參數(shù))
def test4(*args,**kwargs)
test4(1,2,‘pytho’,34)
Note:
1. 關(guān)鍵字參數(shù)和普通參數(shù)可以混合使用,但是必須普通參數(shù)在前,關(guān)鍵字參數(shù)在后,且關(guān)鍵字參數(shù)后不能在有普通參數(shù)
如: test2(name=‘ellie’,23) 報(bào)錯(cuò)
2. 帶默認(rèn)參數(shù)的函數(shù)中,默認(rèn)參數(shù)必須放在最后,否則報(bào)錯(cuò)
如: test3(point=90,name,age) 報(bào)錯(cuò)
5. 一維參數(shù)args,傳數(shù)組/列表參數(shù)
def test5(*args)#args返回的是元組,所以可以進(jìn)行遍歷
list1=[1,2,3,4]
def test5(arg1,arg2,*arg):#arg1,arg2是普通參數(shù),*arg是可變參數(shù)
? ? value=arg1+arg2
? ? for i in arg:
????????value+=i
? ? ? ? return value
test5(1,2,*list1) #*表示將list里面的值進(jìn)行傳遞 ,等價(jià)于test5(1,2,1,2,3,4)
6. 二維參數(shù)kwargs,可變參數(shù)處理關(guān)鍵字參數(shù)
def test6(**kwargs) #kwargs返回的是一個(gè)字典
test6(‘ellie’)#會(huì)報(bào)錯(cuò),因?yàn)閠est是關(guān)鍵字參數(shù),而傳遞的是普通參數(shù)
test6(name=‘ellie’)#正確,返回值是{name:“ellie”}
字典傳遞:
dict1={“name”:‘ellie’,“age”:23,“points”:80}
list1=(1,2,3,4)
def test7(*list,**kwargs):
? ? print(“啦啦啦啦”)
test7(*list1,**kwargs)#相當(dāng)于傳遞普通參數(shù)1,2,3,4,和關(guān)鍵字參數(shù)“name”=‘ellie’,“age”=23,“points”=80