1、**parameter
这种形式表示接收任意多个类似关键字参数一样显式赋值的实际参数,并将其放到一个字典中。
函数调用:多余的有名字的参数(参数名=值)会传递给**后面的不定长参数,通常叫kwargs
。
函数定义,**kwagrs,以字典的方式存储传递过来的多余的有名字的实参。
2、应用
3、拆包
结果并不是我们预想的那样,把A
传递给args
,B
传递给kwargs
。
在函数调用中,实参**
字典,将字典中的元素一个个拆成key=value
的形式。
如果想要使用一个已经存在的字典作为函数的可变参数,可以在字典的名称前加“**
”
4、小结
加了*
的形参变量args
会存放多余的所有未命名的变量参数,args为元组;而加**
的变量kwargs
会存放多余的所有命名参数,即形如key=value
的参数, kwargs
为字典。
*
不定长参数名,*
后面的不定长参数名通常叫args,当然也可以取别的名字。参数名称是args,不包含前面的*
。- 函数调用时,多余的没有名字的参数会传递给
*
后面的不定长参数,*
后面的不定长参数是以元组的方式存储这些多余的参数。 **
不定长参数名,**
后面的不定长参数名通常叫kwargs
。- 函数调用时,多余的有名字的参数(参数名=值)会传递给
**
后面的不定长参数,**
后面的不定长参数是以字典的方式存储这些多余的参数。 - 多余的没有名字的参数会传递给
args
,多余的有名字的参数会传递给kwargs
。