4

Is it possible to dynamically set the name of an argument being passed into a function?

like this:

def func(one=None, two=None, three=None, four=None):
    ...

params = ("one","two","three","four",)
for var in params:
    tmp = func(var=value)
Zero Piraeus
  • 56,143
  • 27
  • 150
  • 160
Jeremy
  • 1,717
  • 5
  • 30
  • 49

1 Answers1

12

Yes, with keyword argument unpacking:

def func(one=None, two=None, three=None, four=None):
    return (one, two, three, four)

params = ("one", "two", "three", "four")
for var in params:
    tmp = func(**{var: "!!"})
    print(tmp)

Output:

('!!', None, None, None)
(None, '!!', None, None)
(None, None, '!!', None)
(None, None, None, '!!')
Zero Piraeus
  • 56,143
  • 27
  • 150
  • 160