manatlan <[EMAIL PROTECTED]> wrote: > I've got an instance of a class, ex : > > b=gtk.Button() > > I'd like to add methods and attributes to my instance "b". > I know it's possible by hacking "b" with setattr() methods. But i'd > like to do it with inheritance, a kind of "dynamic subclassing", > without subclassing the class, only this instance "b" ! > > In fact, i've got my instance "b", and another class "MoreMethods" > > class MoreMethods: > def sayHello(self): > print "hello" > > How could i write ... > > "b = b + MoreMethods" > > so "b" will continue to be a gtk.Button, + methods/attributs of > MoreMethods (it's what i call "dynamic inheritance") ...so, things > like this should work : > > - b.set_label("k") > - b.sayHello() > > I can't find the trick, but i'm pretty sure it's possible in an easy > way.
I think what you're asking for is totally weird, and with just about zero advantages compared with several saner alternatives that have already been proposed in this thread and that you have rejects, but sure, it's possible: def addaclass(aninst, onemoreclass): aninst.__class__ = type(aninst.__aclass__.__name__, (aninst.__aclass__, onemoreclass), {}) Alex -- http://mail.python.org/mailman/listinfo/python-list