Python string to attribute
Solution 1:
Use the builtin function getattr
.
getattr(object, name[, default])
Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object’s attributes, the result is the value of that attribute. For example,
getattr(x, 'foobar')
is equivalent tox.foobar
. If the named attribute does not exist, default is returned if provided, otherwise AttributeError is raised.
Solution 2:
If someobject
has an attribute named foostring
then
def get_foo(someobject, foostring):
return getattr(someobject,foostring)
or if you want to set an attribute to the supplied object then:
def set_foo(someobject, foostring, value):
return setattr(someobject,foostring, value)
Try it
Solution 3:
You should use setattr and getattr:
setattr(object,'property',value)
getattr(object,'property',default)