Newbie: How can I use a string value for a keyword argument?

Doug Morse morse at
Mon Feb 25 12:42:00 CET 2008


My apologies for troubling for what is probably an easy question... it's just
that can't seem to find an answer to this anywhere (Googling, pydocs, etc.)...

I have a class method,, that takes keyword arguments.  For
example, I can say:

x = MyClass()

Works just fine.

What I need to be able to do is call foo() with a string value specifying the
keyword (or both the keyword and value would be fine), something along the
lines of:

x = MyClass()
y = 'trials=32'        # doesn't work


y = 'trials' = 32)   # does the "wrong" thing

Surely there's some way to use a string's value as the key for making a method
call with a keyword argument?

Just for completeness, my goal is simply to read a bunch of key/value pairs
from an INI file (using ConfigObj) and then use those key/value pairs to set a
(3rd party) object's parameters, which must be done with a call along the
lines of "instance.set(key=value)".  Obviously, I could create a huge if..elif
statement along the lines of "if y = 'trials':; elif y =
'speed':;" etc., but then the statement has to be maintained
every time a new parameter is added/changed etc.  Plus, such a solution seems
to me grossly inelegant and un-Pythonic.

Thanks in advance for any and all assistance!


More information about the Python-list mailing list