[Python-Dev] Let's get rid of unbound methods

Alex Martelli aleax at aleax.it
Wed Jan 5 12:11:37 CET 2005


On 2005 Jan 05, at 04:42, Barry Warsaw wrote:

> On Tue, 2005-01-04 at 18:01, Jack Jansen wrote:
>
>> But I'm more worried about losing the other information in an unbound
>> method, specifically im_class. I would guess that info is useful to
>> class browsers and such, or are there other ways to get at that?
>
> That would be my worry too.  OTOH, we have function attributes now, so
> why couldn't we just stuff the class on the function's im_class
> attribute?  Who'd be the wiser?  (Could the same be done for im_self 
> and
> im_func for backwards compatibility?)

Hmmm, seems to me we'd need copies of the function object for this 
purpose:

def f(*a): pass
class C(object): pass
class D(object): pass
C.f = D.f = f

If now we want C.f.im_class to differ from D.f.im_class then we need f 
to get copied implicitly when it's assigned to C.f (or, of course, when 
C.f is accessed... but THAT might be substantial overhead).  OK, I 
guess, as long as we don't expect any further attribute setting on f to 
affect C.f or D.f (and I don't know of any real use case where that 
would be needed).


Alex



More information about the Python-Dev mailing list