Getting not derived members of a class
George Sakkis
gsakkis at rutgers.edu
Mon Aug 1 12:46:11 EDT 2005
Franz Steinhaeusler wrote:
> Is there any possibility to simply get out
> the classes and baseclasses of a class?
>
> somfunc (y) => class A, B (where B is last).
If you use "new-style" classes, i.e. classes inheriting from object, it
is trivial:
class X(object):
pass
class Y1(X):
pass
class Y2(X):
pass
class Z(Y1,Y2):
pass
>>> z = Z()
>>> z.__class__.__mro__
(<class '__main__.Z'>, <class '__main__.Y1'>, <class '__main__.Y2'>,
<class '__main__.X'>, <type 'object'>)
Old style classes don't have __mro__, so you have to write it yourself;
in any case, writing old style classes in new code is discouraged.
George
More information about the Python-list
mailing list