如何在Python中将可变关键字参数传递给函数?

3

如何将字典键(或其他属性/值)作为关键字参数传递?

我想要传递参数的函数接受关键字参数:

func(arg1= "foo", arg_a= "bar", firstarg= 1)

我需要向它传递很多参数,因此我想循环它(如果可以不使用循环更好):

arguments_dictionary={'arg1': "foo", 
                      'arg_a': "bar",
                       ...}

for keyword, value in arguments_dictionary.items():
  func(keyword= value)

很遗憾,“keyword=”未被识别为“arg1”。我该如何使其工作?

func(**arguments_dictionary)... 删除循环 - OneCricketeer
1个回答

13
假设您想要调用func一次:
def func(arg1="foo", arg_a= "bar", first_arg=1):
   print(arg1, arg_a, first_arg)

arguments_dictionary = {
  'arg1': "foo", 
  'arg_a': "bar",
  'first_arg':42
   }

func(**arguments_dictionary)

2
SO的工作方式真奇怪...有时你花几个小时写一个清晰、详细的答案,解释一些深奥的特性,甚至没有得到一个赞,然后你在一个初学者级别的问题上写一个最小的答案,在几分钟内就得到了五个赞<g> - bruno desthuilliers
SO 对于这个问题基本上是无能为力的。它的社区规模太大了,已经超出了自身的好处。 - Daniel

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接