我发现下面的链接,是非常有益的解释*
,*args
以及**kwargs
:
https://pythontips.com/2013/08/04/args-and-kwargs-in-python-explained/
本质上,除了上面的答案之外,我还从上面的网站(信用:https : //pythontips.com/author/yasoob008/)学到了以下内容:
在下面首先定义演示功能的情况下,有两个示例,一个带有*args
和一个带有**kwargs
def test_args_kwargs(arg1, arg2, arg3):
print "arg1:", arg1
print "arg2:", arg2
print "arg3:", arg3
# first with *args
>>> args = ("two", 3,5)
>>> test_args_kwargs(*args)
arg1: two
arg2: 3
arg3: 5
# now with **kwargs:
>>> kwargs = {"arg3": 3, "arg2": "two","arg1":5}
>>> test_args_kwargs(**kwargs)
arg1: 5
arg2: two
arg3: 3
因此*args
,您可以动态建立一个参数列表,该参数列表将按照其输入的顺序进行处理,而**kwargs
可以启用NAMED参数的传递,并且可以由NAME进行相应的处理(而与它们的输入顺序无关) 。
该站点继续,并指出参数的正确顺序应为:
some_func(fargs,*args,**kwargs)