Victor Ng wrote:
I'm doing some evil things in Python and I would find it useful to
determine which class a method is bound to when I'm given a method
pointer.
For example:
class Foo(object):
def somemeth(self):
return 42
class Bar(Foo):
def othermethod(self):
return 42
Is there some way I can have something like :
findClass(Bar.somemeth)
that would return the 'Foo' class, and
findClass(Bar.othermethod)
would return the 'Bar' class?
vic
I think you can use the mro function
>>> class Foo(object):
... def somemeth(self):
... pass
...
>>> class Bar(Foo):
... def othermeth(self):
... pass
...
>>> def findClass(meth):
... for x in meth.im_class.mro():
... if meth.im_func in x.__dict__.values(): return x
...
>>> findClass(Bar.somemeth)
<class '__main__.Foo'>
>>> findClass(Bar.othermeth)
<class '__main__.Bar'>
>>>
--
Robin Becker
--
http://mail.python.org/mailman/listinfo/python-list