以星号和双星号开头的Python方法/函数参数

我无法理解这些types的函数在哪里使用,以及这些论点与正常的论点有什么不同。 我遇到过很多次,但从来没有机会正确理解它们。

例如:

def method(self, *links, **locks): #some foo #some bar return 

我知道我可以search文档,但我不知道要search什么。

*args**keywordargsforms分别用于传递参数列表和参数字典。 所以如果我有这样的function:

 def printlist(*args): for x in args: print(x) 

我可以这样称呼它:

 printlist(1, 2, 3, 4, 5) # or as many more arguments as I'd like 

为了这

 def printdict(**kwargs): print(repr(kwargs)) printdict(john=10, jill=12, david=15) 

*args行为就像一个列表,并且**keywordargs行为就像一个字典,但是您不必显式地将一个list或一个dict传递给函数。

看到这个更多的例子。