Functions, callable objects, and bound/unbound methods
Duncan Booth
duncan.booth at invalid.invalid
Fri Dec 1 03:30:09 EST 2006
Ron Garret <rNOSPAMon at flownet.com> wrote:
> I want to say:
>
> trace(c1.m1)
>
> and have c1.m1 be replaced with a wrapper that prints debugging info
> before actually calling the old value of m1. The reason I want that
> to be an instance of a callable class instead of a function is that I
> need a place to store the old value of the method so I can restore it,
> and I don't want to start building a global data structure because
> that gets horribly ugly, and a callable class is the Right Thing -- if
> there's a way to actually make it work.
>
> Is there? I tried the obvious things (like making callable inherit
> from function, and adding im_func and im_self attribuetes) but they
> didn't work.
Read "Functions and Methods" in
http://users.rcn.com/python/download/Descriptor.htm
You need to implement a __get__ method on your class.
More information about the Python-list
mailing list