python3 函数传参 先后顺序

当args与位置参数和默认参数混用的情况下:

【示例一】(三者顺序是:位置参数、默认参数、*args)

def foo(x,y=1,*args):
     pass
foo (1,2,3,4,5) // 其中的x为1,y=1的值被2替换,3,4,5都给args,即args=(3,4,5)

【示例二】(三者顺序是:位置参数、*args、默认参数)

def foo(x,*args,y=1):     
	passfoo (1,2,3,4,5
 // 其中的x为12,3,4,5都给args,即args=(2,3,4,5),y始终为1 

【示例三】
**kwargs:(表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现)
三者的顺序必须是位置参数、*args、**kwargs,不然就会报错。

def foo(x,*args,**kwargs):
     pass
foo (1,2,3,4,y=5,a=6,b=7)
 // 其中的x为12,3,4都给args,即args=(2,3,4),y=5,a=6,b=7以字典形式传给kwargs,
即kwargs={
     'y':5,'a':6,'b':7}

你可能感兴趣的:(python,python)