[Chicago] Creating property() members programmatically
Tim Gebhardt
tim at gebhardtcomputing.com
Mon Feb 9 16:13:45 CET 2009
On Sat, Feb 7, 2009 at 10:57 AM, Brantley Harris <deadwisdom at gmail.com>wrote:
> So it's easy enough to declare properties on classes, but rather
> difficult to do so on objects themselves (I'm not even sure it's
> possible, well not good form anyhow.)
>
> So you have a few options. One is to subclass your Encoder with an
> intermediate class, and then add properties, dynamically to it:
> class LameEncoder(Encoder):
> @classmethod
> def add_property(cls, attr, default):
> def setter(self, v):
> setattr(self, '_%s' % attr, v)
> def getter(self):
> return getattr(self, '_%s' % attr, default)
> setatter(cls, attr, property(gettter, setter))
>
> for attr, default in PARAMETER_LIST:
> LameEncoder.add_property(atter, default)
>
I went with the first method you suggested and it worked perfectly. Thanks!
-Tim Gebhardt
tim at gebhardtcomputing.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/chicago/attachments/20090209/f70b7b1d/attachment.htm>
More information about the Chicago
mailing list