在阅读官方文档后我们看到一下一句话:
modelB = TheModelBClass(*args, **kwargs)
我只知道在方法里的参数使用" * “代表关键字参数,但是” ** "是什么意思,今天我就来分享一下
什么是关键字参数:
关键字参数是允许你传入0个或任意个含参数名的参数,我们开函数的时候有时候添加一些功能并不知道要添加多少个参数或者有些参数可以输入也可以忽略,这时候关键字参数就可以帮上忙了。我们要注意的是,添加关键字参数一定要放在输入参数的最后,不然编译器不知道哪个是关键字参数。我们举个例子:
def keyword_parameter(a=0,b=0,*c):
print(a)
print(b)
print(c)
keyword_parameter(1,2)
print("----分割线-----")
keyword_parameter(4,5,6,7)
我们来看一下运行结果第一次我们没有给c赋值,所以输出是个空元组,第二次我们给c赋值6,7于是这些关键字参数在函数内部自动组装为一个元组。值得注意的是如果我们直接赋值给c是不允许的。如:
keyword_parameter(4,5,c=6,7)
接下来们看一下" ** "
def keyword_parameter(a=0,b=0,**c):
print(a)
print(b)
print(c)
keyword_parameter(1,2)
print("----分割线-----")
keyword_parameter(4,5,x='x',y='y')
" ** "关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict所以输入x=‘x’,y=‘y’。值得注意的是输入的关键字参数会自动打包成一个字典,所以我们要输入相应对的映射,否则输入错误如
keyword_parameter(4,5,6,7)//这是不正确的输入