Ricardo Aráoz wrote: > Yep. And once you've got it pls explain it too me, too lazy today to > pick the manual. :)
I included a link to my explanation previously. I'm too lazy to try to do better. > Any easier way? Easier how? I don't know what could be easier to implement than a single function call. What did you have in mind? These are all equivalent, take your pick: myObj.mfunc = newfunc.__get__(myObj, MyClass) myObj.mfunc = types.MethodType(newfunc, myObj, MyClass) myObj.mfunc = new.instancemethod(newfunc, myObj, MyClass) For my own interest I looked into how these are actually implemented with an eye to which one might be preferred. new.instancemethod has the advantage of being documented in the library reference but the source says it is deprecated and it is a synonym for types.MethodType (in new.py). types.MethodType is defined in types.py as MethodType = type(_x._m) where _x is a class and _m is a method; i.e. types.MethodType is literally 'the type of a bound method'. It is fairly explicit at the point of use - 'give me a method'. newfunc.__get__ is defined by func_descr_get() in Objects/funcobject.c. It delegates to PyMethod_New() so it is essentially calling MethodType. It's a bit obscure at the point of use. So I guess I prefer MethodType(newfunc, myObj, MyClass) Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor