gpt4 book ai didi

python - **关键字形式的形式参数

转载 作者:行者123 更新时间:2023-11-30 23:44:24 25 4
gpt4 key购买 nike

“**关键字形式的形式参数”的具体用途是什么?我将其放在引号中,因为这就是文档中提到的内容,但我很难找到有关它的信息,并认为也许有一个正式的术语。

据我了解,它允许用户执行类似的操作

def foo(**keywords):
for i in keywords:
print(i, ":", keywords[i])

foo(val1="1", val2="2", val3="3")

输出:

val1 : 1
val2 : 2
val3 : 3

这样做的好处到底是什么?传递字典变量不是更容易理解吗?

最佳答案

如果您使用字典,调用函数将如下所示:

myfunv({"key1": "value1", "key2": "value2"})

使用 **kwargs 这变成了

myfunc(key1="value1", key2="value2")

许多人更喜欢后者。

当您将参数透明地传递给另一个函数或类时,此构造也非常有用。例如,我在子类化 Tkinter 小部件时经常使用它。我想支持基类的所有选项,所以我这样编码:

class MyFrame(tk.Frame):
def __init__(self, *args, **kwargs):
tk.Frame.__init__(self, *args, **kwargs)
<more code here>

这使我能够支持所有相同的论点,而无需明确列出所有论点。

关于python - **关键字形式的形式参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10130070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com