setattr vs readonly property

David wizzardx at gmail.com
Wed Sep 12 06:05:27 EDT 2007


> My main purpose for using setattr(object, attr, value) for assign
> values from a dict that has some keys that may not be present on some
> object's attibute, which makes it work for me. My problem is dealing
> with read only attribute like sample_attribute =
> property(f_get=_get_sample_attribute). what approach should I use? Or
> is my first approach In the first place right?

You could try catching the exception thrown when you attempt to assign
to a read-only attribute. Although you may get consistency issues. ie
your object doesn't have all the details from the dict, but the
calling code expects them to be set. Perhaps you should provide
"setter" methods for the properties also, so that your objects
internal state gets set correctly.

eg: in your class declaration:

def setfoo(self, value):
   # Add code here to check 'value' and set internal 'foo' state correctly
   self._foo = value

def getfoo(self):
   return self._foo

foo = property(setfoo, getfoo)



More information about the Python-list mailing list