gpt4 book ai didi

python - 字典作为 kwargs ,其变量多于使用的变量

转载 作者:行者123 更新时间:2023-11-28 22:13:57 24 4
gpt4 key购买 nike

我有一个字典,其中有几个键及其各自的值。

我希望键充当变量,它们的值充当每个变量的值,以便在函数中使用它们。

我知道这允许我拥有一个带有任意数量参数的函数:

def myFunc(**kwargs):
...

这允许我使用字典中的键作为参数:

myDict={
"foo1":"bar1",
"foo2":"bar2",
"foo3":"bar3"}

def myFunc(foo1, foo2):
...

myFunc(**myDict)

我的问题是我有 3 个函数,它们接受相同的参数,但它们也有自己的参数。

如何使用我的字典作为所有 3 个函数的参数,前提是该字典有一些不会在每个函数中使用的键。

类似这样的事情:

myDict={
"foo1":"bar1",
"foo2":"bar2",
"foo3":"bar3",
"foo4":"bar4",
"foo5":"bar5"}

def fun1(**kwargs):
#takes foo1, foo2 and foo5 as args
def fun2(**kwargs):
#takes foo1, foo2 and foo4 as args
def fun3(**kwargs):
#takes foo1, foo2 and foo3 as args

fun1(**myDict)
fun2(**myDict)
fun3(**myDict)

如何做到这一点?

最佳答案

我有两种方法来解决这个问题。首先,正如您所做的:

def fun1(**kwargs):
#takes foo1, foo2 and foo5 as args
foo1 = kwargs.get("foo1")
foo2 = kwargs.get("foo2")
foo5 = kwargs.get("foo5")
# do something with foo1, foo2, foo5

您使用kwargs定义一个函数,并选取函数内所需的内容,而忽略其他所有内容。

另一种方法是在函数签名中准确定义您需要的内容加上一个虚拟kwargs:

def fun1(foo1=None, foo2=None, foo5=None, **kwargs):
#takes foo1, foo2 and foo5 as args
# do something with foo1, foo2, foo5

无论哪种方式,您都可以使用fun1(**myDict)调用该函数。只有后者才会触发静态分析器警告您有未使用的变量 kwargs,这是故意的。

关于python - 字典作为 kwargs ,其变量多于使用的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53619351/

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