Oh, How great is the solution! ( though i don't know how it works. ) Thank you George.
George Sakkis wrote: > neoedmund wrote: > > > python use multiple inheritance. > > but "inheritance" means you must inherite all methods from super type. > > now i just need "some" methods from one type and "some" methods from > > other types, > > to build the new type. > > Do you think this way is more flexible than tranditional inheritance? > > The following does the trick: > > from types import MethodType > > def addMethod(meth, obj): > f = meth.im_func > setattr(obj, f.__name__, MethodType(f,obj)) > > def test1(): > addMethod(C2.m, C3) > addMethod(C1.v, C3) > o = C3() > o.m() > > The same works as is on modifying individual instances, rather than > their class: > > def test2(): > o = C3() > addMethod(C2.m, o) > addMethod(C1.v, o) > o.m() > # raises AttributeError > # C3().m() > > > George -- http://mail.python.org/mailman/listinfo/python-list