Rafe a écrit :
(snip)

You can dynamically add properties to a class

The OP was asking for *per instance* properties...

just before returning
the
instance using __new__():

class AClass(object):
    def __new__(cls):

        setattr(cls,"propName", property(fget = ...,
                                         fset = ...,
                                         fdel = ...,
                                         doc  = ...) )

        obj = super(AClass, cls).__new__(cls)
        return obj


Very bad idea IMHO. __new__ is called on each instanciation, which means the above code will uselessly modify the class each time you create an instance of it, overwriting the same properties again and again and again. If what you want is to automagically add properties (or whatever type of attributes) to a class and/or it's subclass, you'd be better using a custom metaclass.



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to