python自定义函数参数_python自定义函数的参数之四种表现形式

(1)def a(x,y):print x,y

这是最常见的定义方式,调用该函数,a(1,2)则x取1,y取2,形参与实参相对应,如果a(1)或者a(1,2,3)则会报错

(2)def a(x,y=3):print x,y

提供了默认值,调用该函数,a(1,2)同样还是x取1,y取2,但是如果a(1),则不会报错了。上面这俩种方式,还可以更换参数位置,比如a(y=4,x=3)用这种形式也是可以的

如果是def a(x,y=3,z=4)这种函数如果只传x和z和值,则必须这样写a(1,z=2),后面的参数必须指定参数名

(3)def a(*x):print x

以一个*加上形参名的方式来表示这个函数的实参个数不定,可能为0个也可能为n个。a(1,2,3)可以正确调用,a(x=1,y=2,z=3)这样调用会报错。不管有多少个参数,在函数内部都被存放在以形参名为标识符的元组中,即x中

(4)def a(**x):print x

形参名前加两个*表示,参数在函数内部将被存放在以形式名为标识符的dictionary中,这时调用函数的方法则需要采用arg1=value1,arg2=value2这样的形式

>>> a(x=1,y=2,z=3)

{'y': 2, 'x': 1, 'z': 3} #存放在字典中

>>> a(1,2,3) #这种调用则报错

Traceback (most recent

你可能感兴趣的:(python自定义函数参数)