"Janne Härkönen" <[EMAIL PROTECTED]> wrote: > $ python > Python 2.5.1 (r251:54863, May 18 2007, 16:56:43) > [GCC 3.4.4 (cygming special, gdc 0.12, using dmd 0.125)] on cygwin > Type "help", "copyright", "credits" or "license" for more information. >>>> class X: > ... def x(self): > ... pass > ... >>>> class Y(X): > ... def y(self): > ... pass > ... >>>> y = Y() >>>> y.x.im_class ><class __main__.Y at 0x7ff24bfc> >>>> y.y.im_class ><class __main__.Y at 0x7ff24bfc> > > What I would like to find out is the declaring class of method x, ie. > class X How to do this ? >
For what it is worth, this should work for simple cases: >>> def searchclass(K, name): for base in getattr(K, '__mro__', (K,)+K.__bases__): if name in base.__dict__: return base >>> searchclass(Y, 'y') <class __main__.Y at 0x00C4FE40> >>> searchclass(Y, 'x') <class __main__.X at 0x00C4FE70> -- http://mail.python.org/mailman/listinfo/python-list