(推荐操作系统: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,但这个是通常做法。