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

19 浏览
0 Comments

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

这个问题已经有了答案**(双星号/星号)和*(星号/星号)对参数有什么作用?

我不明白这些类型的功能在哪里使用,以及这些参数与普通参数的不同之处。我遇到过他们很多次,但从未有机会完全理解它们。

例如:

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

我知道我可以查找文档,但我不知道该搜索什么。

admin 更改状态以发布 2023年5月23日
0
0 Comments

*args**keywordargs形式分别用于传递参数列表和参数字典。因此,如果我有一个像这样的函数:

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 行为像一个字典,但是您不需要明确地将 listdict 传递给函数。

查看这里以获取更多示例。

0