В дополнение к __bases__
, который упоминался в aix, есть также __mro__
, который сообщит вам все классы, от которых вы наследуете, обратно к object
и порядок, в котором онибудет выполнен поиск заданного атрибута.
class foo(object):
pass
class bar(foo):
pass
print bar.__mro__
>>> (<class '__main__.bar'>, <class '__main__.foo'>, <type 'object'>)
Если у вас есть экземпляр, а не класс, вы можете сделать type(x).__mro__
.