Python中函數的參數是很靈活的,下面分四種情況進行說明。
(1) fun(arg1, arg2, ...)
這是最常見的方式,也是和其它語言類似的方式
下面是一個執行個體:
>>> def fun(x, y):
return x - y
>>> fun(12, -2)
14
(2) fun(arg1, arg2=value2, ...)
這種就是所謂的帶預設參數的函數,調用的時候我們可以指定arg2的值,也可以省略。
下面是帶預設參數的函數執行個體:
>>> def fun(x, y=0):
return x - y
>>> fun(10)
10
>>> fun(10, -2)
12
>>> fun(10, y=2)
8
>>> fun(x=10, y=2)
8
帶預設參數的函數有如上四種調用方式,但是我們調用的時候參數的名稱必須和函數定義的時候的參數一緻,否則會報錯:
>>> fun(a=10, b=2)
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
fun(a=10, b=2)
TypeError: fun() got an unexpected keyword argument 'a'
(3) fun(*arg)
即不定長參數,不管實參有多少個,在函數内部都被存放在以形參名為辨別符的tuple中
下面是一個執行個體
>>> def fun(*param):
print(param)
>>> fun(12, 3, 4)
(12, 3, 4)
(4) fun(**arg)
>>> def fun(**param):
print(param)
>>> fun(sun=0, mon=1, tues=2)
{'sun': 0, 'mon': 1, 'tues': 2}