Python中的函数参数主要有3种形式:
1)位置或关键字参数
def fun(a,b,c):
print a,b,c
*可以使用位置参数
fun(1,2,3)
*可以使用关键字参数,关键字参数之间的顺序没有关系
fun(a=1,c=3,b=2)
*也可以混合使用位置参数和关键字参数,但位置参数必须在关键字参数的前面
fun(1,c=3,b=2)
2)任意数量的位置参数
定义时以一个星号(*)前缀表示。
在传参时,可以在原有参数的后面添加0个或多个参数,这些参数将会被放在元组内并传入函数。
def fun2(str1,*numbers):
print str1,numbers
fun2(‘num:’,1,2,3,4)
注:不能是关键字参数,否则会报错
3)任意数量的关键字参数
定义时以两个星号前缀(**)表示。
在传参时,可以在原有参数后面添加任意0个或多个关键字参数,这些参数会被放到字典内并传入到函数中,带两个星号前缀的参数必须定义在所有默认值的参数之后。
def fun3(a=1,*numbers,**kwargs):
print a,numers,kwargs
fun3(4,2,3,4,b=2,c=3)
结果为:4 (2,3,4){‘c’:3, ‘b’:2}
注意:任意数量的位置参数(*)必须定义在位置或关键字参数(无星号)之后,且在任意数量的关键字参数(***)之前。