**1. 位置參數(shù): **
要求必須傳入的參數(shù),類似c語言中的普通參數(shù)
**2. 默認(rèn)參數(shù): **
在python中,定義函數(shù)的時(shí)候可以給函數(shù)參數(shù)一個(gè)默認(rèn)值(即:默認(rèn)參數(shù)),當(dāng)調(diào)用函數(shù)時(shí)不給默認(rèn)參數(shù)傳值,則該參數(shù)使用默認(rèn)值。
例:

Snip20170114_2.png
**3. 可變參數(shù): **
定義函數(shù)時(shí)聲明一個(gè)可變參數(shù),可以在調(diào)用函數(shù)的時(shí)候傳入多個(gè)參數(shù),而且參數(shù)個(gè)數(shù)隨機(jī)。
定義:
>>> def test2(*numbers): #numbers可類比c中數(shù)組名
... for i in numbers:
... print(i)
調(diào)用:
test2(1,2,3) #輸出 1 2 3
nums=[1,2,3]
test2(*nums) #輸出也是1 2 3
**4. 關(guān)鍵字參數(shù): **
可變參數(shù)允許你傳入0個(gè)或任意個(gè)參數(shù),這些可變參數(shù)在函數(shù)調(diào)用時(shí)自動(dòng)組裝為一個(gè)tuple。而關(guān)鍵字參數(shù)允許你傳入0個(gè)或任意個(gè)含參數(shù)名的參數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict
定義:
>>> def test3(**kw): //可類比c中的二級(jí)指針取值
... print(kw)
使用:
>>> test3(city="guangzhou")
{'city': 'guangzhou'}
>>> test3(city="guangzhou",name="hanl")
{'city': 'guangzhou', 'name': 'hanl'}
>>> test3()
{}
>>> dic={'city': 'guangzhou', 'name': 'hanl'}
>>> test3(**dic)
{'city': 'guangzhou', 'name': 'hanl'}
**5. 命名關(guān)鍵字參數(shù): **
如果需要限制關(guān)鍵字參數(shù)的名字就需要使用命名關(guān)鍵字參數(shù)
定義:
# *后面的參數(shù)被視為命名關(guān)鍵字參數(shù)
>>> def test3(name,*,city):
... print(name)
... print(city)
使用:
>>> test3('hanl',city='wuhan')
hanl
wuhan
如果函數(shù)定義中已經(jīng)有了一個(gè)可變參數(shù),后面跟著的命名關(guān)鍵字參數(shù)就不再需要一個(gè)特殊分隔符*了
>>> def test3(name,*args,city,age):
... print(name,args,city,age)
...
>>> test3('hanl',1,1,2,city='wuhan',age=22)
hanl (1, 1, 2) wuhan 22