python中**kwargs怎么用?

(推荐操作系统:windows7系统、Python 3.9.1、DELL G3电脑。)

1、使用两个星号是收集关键字参数,可以将参数收集到一个字典中,参数的名字是字典的 “键”,对应的参数的值是字典的 “值”。请看下面的例子:

>>>defprint_kwargs(**kwargs):
...print(kwargs)
...
>>>print_kwargs(a='lee',b='sir',c='man')
{'a':'lee','b':'sir','c':'man'}

由例子可以看出,在函数内部,kwargs 是一个字典。

2、参数不是具有不确定型吗?如何知道参数到底会用什么样的方式传值?其实这个很好办,把 *args 和 **kwargs 综合起来就好了啊,请看下面的操作:

>>>defprint_all(x,y,*args,**kwargs):
...print(x)
...print(y)
...print(args)
...print(kwargs)
...
>>>print_all('lee',1234)
lee
1234
()
{}
>>>print_all('lee',1,2,3,4,5)
lee
1
(2,3,4,5)
{}
>>>print_all('lee',1,2,3,4,5,like='python')
lee
1
(2,3,4,5)
{'like':'python'}

这样,我们就可以应对各种各样的参数请求了。当然,这里的关键字参数命名不一定要是 kwargs,但这个是通常做法。