可变长参数(*与**的用法)
可变长指的是在函数调用阶段传入的值(实参)的个数不固定
而实参是用来为形参赋值的,所以对应着,针对溢出的实参,必须有对应的形参来接收
可变长的位置参数
作用:用来接收溢出的位置实参()(溢出的位置实参会被*保存成元组的格式,然后赋值给紧跟其后的实参名)
为了规范*后面跟args
def f1(x, y, *args):
print(x, y, args, type(args))
f1(1, 2, 3, 4, 5, 6, 7)
可变长的关键字参数
用来接收溢出的关键字实参,**会将溢出的关键字实参,保存成字典格式,然后赋值给紧跟其后的变量名(形参)
为了规范**后面跟kwargs
def f1(x, y, **args):
print(x, y, args, type(args))
f1(x = 1, z = 2, y = 3, q = 6, w = 9)
*和**也可以用在实参中,*后面的值被打散,赋值
**后面必须是字典
混用**与*
*args必须在**kwargs之前
命名关键字参数(了解)
在函数定义阶段,*后定义的参数,如下所示,称之为命名关键字参数
def f1(x, y, *, z, q): # z,q称之为命名关键字参数
print(x, y, z, q)
f1(1, 2, z=111, q=222)
特点:
命名关键字必须按照key=value的形式为其传参
2.组合使用(了解)
定义顺序
位置形参 默认形参 *args 命名关键字形参**kwargs