[Python-Dev] Getting rid of unbound methods: patch available

Delaney, Timothy C (Timothy) tdelaney at avaya.com
Tue Jan 18 06:56:11 CET 2005


Guido van Rossum wrote:

> Keeping im_class would be tricky -- the information isn't easily
> available when the function is defined, and adding it would require
> changing unrelated code that the patch so far didn't have to get near.
> Also, it would not be compatible -- the unbound method sets im_class
> to whichever class was used to retrieve the attribute, not the class
> in which the function was defined.

I actually do have a use case for im_class, but not in its current
incarnation. It would be useful if im_class was set (permanently) to the
class in which the function was defined.

My use case is my autosuper recipe. Currently I have to trawl through
the MRO, comparing code objects to find out which class I'm currently
in. Most annoyingly, I have to trawl *beyond* where I first find the
function, in case it's actually come from a base class (otherwise
infinite recursion can result ;)

If im_func were set to the class where the function was defined, I could
definitely avoid the second part of the trawling (not sure about the
first yet, since I need to get at the function object).

Cheers.

Tim Delaney


More information about the Python-Dev mailing list