Если у меня есть код Python
class A():
pass
class B():
pass
class C(A, B):
pass
и у меня есть класс C
, есть ли способ перебрать его через суперклассифицированный (A
и B
)? Что-то вроде псевдокода:
>>> magicGetSuperClasses(C)
(<type 'A'>, <type 'B'>)
Одним из решений является проверить модуль и getclasstree
.
def magicGetSuperClasses(cls):
return [o[0] for o in inspect.getclasstree([cls]) if type(o[0]) == type]
но является ли это "питоническим" способом достижения цели?