Kalle Nijs
Kalle Nijs

Reputation: 75

How do I pass variable keyword arguments to a function in Python?

How can I pass dictionary keys (or other attributes/values) as keywords for keyword arguments?

The function I want to pass arguments to takes keyword arguments:

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

I have a lot of arguments to pass to it, so I'd like to loop it (or if it's possible without a loop, even better):

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

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

Sadly, keyword= is not recognized as 'arg1'. How can I make this work?

Upvotes: 3

Views: 2132

Answers (1)

bruno desthuilliers
bruno desthuilliers

Reputation: 77892

Assuming you want to call func a single time:

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)

Upvotes: 13

Related Questions