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