Darren Dale wrote: > Does anyone know if it is possible to add a property to an instance at > runtime? I didn't see anything about it in the standard library's new > module, google hasn't turned up much either.
Depending on what you *really* want - yes or no. It is *not* possible to have a property *only* on one instance, because properties rely on the descriptor-protocol being used, and that only works for class-attributes. So it's not a matter of "only" adding a = Foo() a.something = property(...) However, you can of course try & come up with a scheme that only invokes getters and setters if defined, and otherwise returns a default-value/raises an attribute-error. Roughly like this: class Base(object): def x_get(self): return self.x_get_overload() x = property(x_get) a = Base() def foo(self): return "something" a.x_get_overload = new.instancemethod(foo) Diez -- http://mail.python.org/mailman/listinfo/python-list