1.預設值參數
即為函數形參設定預設值,在調用該函數時,不為預設值參數進行傳值,自動調用預設值,若為已設定預設值的形參傳值,則使用替換後的實參。
可以使用‘函數名.func_defaults'(python3中使用'函數名.__defaults__')來查看函數所有預設值參數的當前值。其傳回值為一個依次排序預設值的元組。
在定義帶有預設值參數的函數時,預設值參數必須出現在函數形參列表的最右端。
2.關鍵參數
調用時使用的參數,不受順序影響。
3.可變長參數
*x用來接收任意多個實參,並將其放在一個元組中,**x用來接收多個實參放在一個字典中。
>>> def f(*x):
print x
>>> f(1,2,3)
(1, 2, 3)
>>> def h(**x):
for i in x.items():
print i
>>> h(x = 1,y = 2,z = 3)
('y', 2)
('x', 1)
('z', 3)
>>> def h(**x):
print x
>>> h(x = 1,y = 2)
{'y': 2, 'x': 1}
>>> def h(**x):
print x.keys()
>>> h(x = 1,y = 2,z = 3)
['y', 'x', 'z']
>>> def h(**x):
print x.values()
>>> h(x = 1,y = 2,z = 3)
[2, 1, 3]
4.參數傳遞事的序列解包
為含有多個變數的函數傳遞參數時,可以使用列表、元組、字典、集合以及其他可迭代對象作為實參,並在實參名稱前加一個*,python解譯器會自動進行解包然後傳遞給多個變數。若使用字典作為實參,則預設是鍵,索引值對則使用items方法,值values方法。
>>> def f(a,b,c):
print a+b+c
>>> s = [1,2,3]
>>> f(*s)
6
>>> t =(1,2,3)
>>> f(*t)
6
>>> d = {1:'a',2:'b'}
>>> d = {1:'a',2:'b',3:'c'}
>>> f(*d)
6
>>> s = {1,2,3}
>>> f(*s)
6
5.return
沒有任何傳回值return語句返回None。