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

Shi*_*pak 84 python

我无法理解这些函数的使用位置以及这些参数与普通参数的不同之处.我遇到过很多次,但从来没有机会正确理解它们.

例如:

def method(self, *links, **locks):
    #some foo
    #some bar
    return
Run Code Online (Sandbox Code Playgroud)

我知道我可以搜索文档,但我不知道要搜索什么.

Raf*_*ler 123

*args**keywordargs的形式被分别用于传递的自变量的自变量列表和字典.所以,如果我有这样的功能:

def printlist(*args):
    for x in args:
        print(x)
Run Code Online (Sandbox Code Playgroud)

我可以这样称呼它:

printlist(1, 2, 3, 4, 5)  # or as many more arguments as I'd like
Run Code Online (Sandbox Code Playgroud)

为了这

def printdict(**kwargs):
    print(repr(kwargs))

printdict(john=10, jill=12, david=15)
Run Code Online (Sandbox Code Playgroud)

*args表现得像一个列表,**keywordargs行为就像一个字典,但你不必显式传递一个list或一个dict到该函数.

有关更多示例,请参阅

  • 但*可以*您明确地将列表或字典传递给函数吗? (5认同)